• SQL注入攻击


    1.错误代码:

     string id = Request.Params["id"];
       string sql = "insert into [UserTable]([UserID]) values ('"+id+"')";
       executeSql(sql)

    2. 当运行http://localhost:14288/Default.aspx?id=wert')  delete from [UserTable] --

        UserTable数据被清空了

    3.做简单替换

       string id = Request.Params["id"];
       id = id.Replace("'", "''");
       string sql = "insert into [UserTable]([UserID]) values ('"+id+"')";

       executeSql(sql);

       这样会有以下这种垃圾数据还是可以进入数据库

       werxlt')  delete from [UserTable] --

    4.使用下面方法,但是像原来有空格的数据就会被清掉,比如a- b就成了a-b

    public string CheckStr(string html)

     {
                System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@"<script[\s\S]+</script *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                System.Text.RegularExpressions.Regex regex2 = new System.Text.RegularExpressions.Regex(@" href *= *[\s\S]*script *:", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                System.Text.RegularExpressions.Regex regex3 = new System.Text.RegularExpressions.Regex(@" no[\s\S]*=", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                System.Text.RegularExpressions.Regex regex4 = new System.Text.RegularExpressions.Regex(@"<iframe[\s\S]+</iframe *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                System.Text.RegularExpressions.Regex regex5 = new System.Text.RegularExpressions.Regex(@"<frameset[\s\S]+</frameset *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                System.Text.RegularExpressions.Regex regex6 = new System.Text.RegularExpressions.Regex(@"\<img[^\>]+\>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                System.Text.RegularExpressions.Regex regex7 = new System.Text.RegularExpressions.Regex(@"</p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                System.Text.RegularExpressions.Regex regex8 = new System.Text.RegularExpressions.Regex(@"<p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                System.Text.RegularExpressions.Regex regex9 = new System.Text.RegularExpressions.Regex(@"<[^>]*>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                html = regex1.Replace(html, ""); //过滤<script></script>标记
                html = regex2.Replace(html, ""); //过滤href=java script: (<A>) 属性
                html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on...事件
                html = regex4.Replace(html, ""); //过滤iframe
                html = regex5.Replace(html, ""); //过滤frameset
                html = regex6.Replace(html, ""); //过滤frameset
                html = regex7.Replace(html, ""); //过滤frameset
                html = regex8.Replace(html, ""); //过滤frameset
                html = regex9.Replace(html, "");
                html = html.Replace(" ", "");
                html = html.Replace("</strong>", "");
                html = html.Replace("<strong>", "");
                return html;
     }

    当运行http://localhost:14288/Default.aspx?id=wert')  delete from [UserTable] --

    显示'deletefrom' 附近有语法错误。

  • 相关阅读:
    MPI学习四-集合通信
    MPI学习三
    MPI学习二
    MPI学习一
    HIP编程
    CUDA实战3
    CUDA实战2
    Excel处理
    2.java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块
    1.隐藏继承的成员new / 虚方法(override)/ abstract / 多态 ----- 重写
  • 原文地址:https://www.cnblogs.com/kenny999/p/2868092.html
Copyright © 2020-2023  润新知