• 防SQL注入攻击


    尽可能全的过滤SQL敏感的语句,
    先把数据库里面注入的代码替换掉,
    再在Global文件里里加入
    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|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();
    }
    }
    }
    }

  • 相关阅读:
    模拟实现链表
    模拟实现内存操作函数
    实现一个简单的进度条
    简单的通讯录(C语言实现)
    sizeof和strlen
    动态联编
    不用第三个变量交换两个变量的值
    内存对齐
    字符串指针和字符数组的区别
    vs中的一些bug解决
  • 原文地址:https://www.cnblogs.com/zhangq723/p/2228426.html
Copyright © 2020-2023  润新知