ASP.NET中SQL注入式攻击的简单解决方法

作者:雨辰 发布于:2009-12-17 14:15 Thursday 分类:遇到的一些问题

一,验证方法

/// <summary>
///SQL注入过滤
/// </summary>
/// <param name="InText">要过滤的字符串</param>
/// <returns>如果参数存在不安全字符,则返回true</returns>
public static bool SqlFilter2(string InText)
{
string word="and|exec|insert|select|delete|update|chr|mid|master|or|truncate|char|declare|join";
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;
}

方法二如下:在App_Code文件夹中加一个类SqlZr.cs 其内容如下

public class SqlZr
{
     public SqlZr()
     {
         //
         // TODO: 在此处添加构造函数逻辑
         //
     }
    public static string DelSQLStr(string str)
    {
        if (str == null || str == "")
            return "";
        str = str.Replace(";", "");
        str = str.Replace("'", "");
        str = str.Replace("&", "");
        str = str.Replace("%20", "");
        str = str.Replace("--", "");
        str = str.Replace("==", "");
        str = str.Replace("<", "");
        str = str.Replace(">", "");
        str = str.Replace("%", "");
        str = str.Replace("+", "");
        str = str.Replace("-", "");
        str = str.Replace("=", "");
        str = str.Replace(",", "");
        return str;
    } 
}

再将所有项目中的Request.QueryString["id"]改为:
SqlZr.DelSQLStr(Request.QueryString["id"])即可

标签: 技术问题

发表评论:

雨辰 joyimp|@2011-2017 京ICP备16030765号