zoukankan      html  css  js  c++  java
  • asp.net防sql注入问题

    以前防sql注入都是当个验证的,觉得太麻烦了,今天找个全局验证的,分享给大家,希望对大家有帮助

    在Web应用程序加全局Global.asax文件,加入Application_BeginRequest禁止提交特殊字符。

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {
    //遍历Post参数,隐藏域除外
    foreach (string i in this.Request.Form)
    {
    if (i == "__VIEWSTATE") continue;
    this.goErr(this.Request.Form[i].ToString());
    }
    //遍历Get参数。
    foreach (string i in this.Request.QueryString)
    {
    this.goErr(this.Request.QueryString[i].ToString());
    }

    }

    /// <summary>
    ///SQL注入过滤
    /// </summary>
    /// <param name="InText">要过滤的字符串</param>
    /// <returns>如果参数存在不安全字符,则返回true</returns>
    public static bool SqlFilter2(string InText)
    {
    string word = ConfigurationManager.AppSettings["RequestForbidWord"].ToString();
    if (InText == null)
    return false;
    foreach (string i in word.Split('|'))
    {
    if ((InText.ToLower().IndexOf(i + " ") > -1) || (InText.ToLower().IndexOf(" " + i) > -1))
    {
    return true;
    }
    }
    return false;
    }
    //// <summary>
    /// 校验参数是否存在SQL字符
    /// </summary>
    /// <param name="tm"></param>
    private void goErr(string tm)
    {
    //string Errorpage = ConfigurationManager.AppSettings["SqlErrorpage"].ToString();
    if (SqlFilter2(tm))
    {
    this.Response.Redirect("/ErrorForm.aspx");
    }
    }

    WEB.CONFIG文件 :

    <add key="RequestForbidWord" value="and|exec|insert|select|delete|update|chr|mid|master|or|truncate|char|declare|join|script&gt;|drop|alter|create"/>





    //成功一定有方法,失败一定有原因。
  • 相关阅读:
    ModbusTCP_Server之FB的建立
    ModbusTCP_Client之FB的建立
    ModbusRTU_Slave之FB的建立
    ModbusRTU_Master之FB的建立
    外部模式启动程序
    配方Recipes的程序实现过程
    socket通信实现程序
    面试题37:序列化二叉树(C++)
    面试题36:二叉搜索树与双向链表(C++)
    面试题31:栈的压入、弹出序列(C++)
  • 原文地址:https://www.cnblogs.com/webapi/p/2415259.html
Copyright © 2011-2022 走看看