首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 又被SQL注入了,有专家给了一段代码,但我看不懂,帮忙翻译下吧 [已结贴,结贴人:HBJMSHOP]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HBJMSHOP
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-28 09:27:18 楼主
    该语句有VB版的么,放在什么地方?
    我不会用C#的,我全用VB.NET编的码,能帮忙翻译下吗,
    我用http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx的功能翻译,报错

    protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            //SQL防注入
            string Sql_1 = "exec ¦insert+ ¦select+ ¦delete ¦update ¦count ¦chr ¦mid ¦master+ ¦truncate ¦char ¦declare ¦drop+ ¦drop+table ¦creat+ ¦creat+table";
            string Sql_2 = "exec+ ¦insert+ ¦delete+ ¦update+ ¦count( ¦count+ ¦chr+ ¦+mid( ¦+mid+ ¦+master+ ¦truncate+ ¦char+ ¦+char( ¦declare+ ¦drop+ ¦creat+ ¦drop+table ¦creat+table";
            string[] sql_c = Sql_1.Split(' ¦');
            string[] sql_c1 = Sql_2.Split(' ¦');

            if (Request.QueryString != null)
            {
                foreach (string sl in sql_c)
                {
                    if (Request.QueryString.ToString().ToLower().IndexOf(sl.Trim()) >= 0)
                    {
                        Response.Write("警告!你的IP已经被记录!");//
                        Response.Write(sl);
                        Response.Write(Request.QueryString.ToString());
                        Response.End();
                        break;
                    }
                }
            }

            if (Request.Form.Count > 0)
            {
                string s1 = Request.ServerVariables["SERVER_NAME"].Trim();//服务器名称
                if (Request.ServerVariables["HTTP_REFERER"] != null)
                {
                    string s2 = Request.ServerVariables["HTTP_REFERER"].Trim();//http接收的名称
                    string s3 = "";
                    if (s1.Length > (s2.Length - 7))
                    {
                        s3 = s2.Substring(7);
                    }
                    else
                    {
                        s3 = s2.Substring(7, s1.Length);
                    }
                    if (s3 != s1)
                    {
                        Response.Write("你的IP已被记录!警告!");//
                        Response.End();
                    }
                }
            }
        }

          */
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kenwu300692
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 09:32:061楼 得分:0

    VB.NET code
    Protected Sub Application_BeginRequest(sender As [Object], e As EventArgs) 'SQL防注入 Dim Sql_1 As String = "exec ¦insert+ ¦select+ ¦delete ¦update ¦count ¦chr ¦mid ¦master+ ¦truncate ¦char ¦declare ¦drop+ ¦drop+table ¦creat+ ¦creat+table" Dim Sql_2 As String = "exec+ ¦insert+ ¦delete+ ¦update+ ¦count( ¦count+ ¦chr+ ¦+mid( ¦+mid+ ¦+master+ ¦truncate+ ¦char+ ¦+char( ¦declare+ ¦drop+ ¦creat+ ¦drop+table ¦creat+table" Dim sql_c As String() = Sql_1.Split("¦") Dim sql_c1 As String() = Sql_2.Split("¦") ' If Not (Request.QueryString Is Nothing) Then Dim sl As String For Each sl In sql_c If Request.QueryString.ToString().ToLower().IndexOf(sl.Trim()) >= 0 Then Response.Write("警告!你的IP已经被记录!") ' Response.Write(sl) Response.Write(Request.QueryString.ToString()) Response.End() Exit ForEach End If Next sl End If If Request.Form.Count > 0 Then Dim s1 As String = Request.ServerVariables("SERVER_NAME").Trim() '服务器名称 If Not (Request.ServerVariables("HTTP_REFERER") Is Nothing) Then Dim s2 As String = Request.ServerVariables("HTTP_REFERER").Trim() 'http接收的名称 Dim s3 As String = "" If s1.Length > s2.Length - 7 Then s3 = s2.Substring(7) Else s3 = s2.Substring(7, s1.Length) End If If s3 <> s1 Then Response.Write("你的IP已被记录!警告!") ' Response.End() End If End If End If End Sub
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • John_Yang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 09:32:552楼 得分:11
    就是把客户端Post过来的表单数据和GET过来的参数进行分析,如果有Sql_1和Sql_2字符串中定义的子字符串(SQL关键字)就给出相应警告
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangdetian168
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 09:38:343楼 得分:1
    标记下留着用
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuqian4243
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 09:40:234楼 得分:1
    去掉可以是注入的字符,再提交了.

    当判断有危险字符时,就给当前的用户发出警告!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • amityat
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 09:51:555楼 得分:1
    当判断有危险字符时,就给当前的用户以提示!
    这样及时一点
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HBJMSHOP
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 10:01:546楼 得分:0
    好,加进去了,今天再试一下,看是否还会被注入,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kent55782
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 10:03:487楼 得分:1
    为啥不用存储过程
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • VCInfo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 10:04:138楼 得分:1
    Mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Teng_s2000
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 10:11:519楼 得分:1
    UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yezi1105
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 10:12:4610楼 得分:1
    不错
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lovedelphi2006
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-28 10:13:3511楼 得分:1
    标记
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hwg9741
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-29 13:17:4912楼 得分:1
    判断POST或者GET提交的参数看是否含有非法字符,如果含有就提出警告
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HBJMSHOP
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-30 11:21:1413楼 得分:0
    分给错了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HBJMSHOP
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-30 11:25:1614楼 得分:0
    分应该给1楼,结果多给了二楼
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dreamice01
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-03 19:12:4915楼 得分:0
    学习中........
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zbwangchao
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-16 01:18:2016楼 得分:0
    string[] sql_c1 = Sql_2.Split(' ¦');
    这句干啥用了 ?

    一直没有看到sql_c1做啥了
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved