SQL防漏洞注入攻击小结

时间:2025-01-19 19:07:32

3SQL防漏洞注入攻击小结/// 
  4SQL防漏洞注入攻击小结/// 判断字符串中是否有SQL攻击代码
  5SQL防漏洞注入攻击小结/// 
  6SQL防漏洞注入攻击小结/// 传入用户提交数据
  7SQL防漏洞注入攻击小结/// true-安全;false-有注入攻击现有;
  8SQL防漏洞注入攻击小结public bool ProcessSqlStr(string inputString)
  9SQL防漏洞注入攻击小结{
 10SQL防漏洞注入攻击小结    string SqlStr = @"and|or|exec|execute|insert|select|delete|update|alter|create|drop|count|\*|chr|char|asc|mid|substring|master|truncate|declare|xp_cmdshell|restore|backup|net +user|net +localgroup +administrators";
 11SQL防漏洞注入攻击小结    try
 12SQL防漏洞注入攻击小结    {
 13SQL防漏洞注入攻击小结        if ((inputString != null) && (inputString != String.Empty))
 14SQL防漏洞注入攻击小结        {
 15SQL防漏洞注入攻击小结            string str_Regex = @"\b(" + SqlStr + @")\b";
 16SQL防漏洞注入攻击小结
 17SQL防漏洞注入攻击小结            Regex Regex = new Regex(str_Regex, RegexOptions.IgnoreCase);
 18SQL防漏洞注入攻击小结            //string s = Regex.Match(inputString).Value; 
 19SQL防漏洞注入攻击小结            if (true == Regex.IsMatch(inputString))
 20SQL防漏洞注入攻击小结                return false;
 21SQL防漏洞注入攻击小结
 22SQL防漏洞注入攻击小结        }
 23SQL防漏洞注入攻击小结    }
 24SQL防漏洞注入攻击小结    catch
 25SQL防漏洞注入攻击小结    {
 26SQL防漏洞注入攻击小结        return false;
 27SQL防漏洞注入攻击小结    }
 28SQL防漏洞注入攻击小结    return true;
 29SQL防漏洞注入攻击小结}
 30SQL防漏洞注入攻击小结
 31SQL防漏洞注入攻击小结
 32SQL防漏洞注入攻击小结/// 
 33SQL防漏洞注入攻击小结/// 处理用户提交的请求,校验sql注入式攻击,在页面装置时候运行
 34SQL防漏洞注入攻击小结/// System.Configuration.ConfigurationSettings.AppSettings["ErrorPage"].ToString(); 为用户自定义错误页面提示地址,
 35SQL防漏洞注入攻击小结/// 在Web.Config文件时里面添加一个 ErrorPage 即可
 36SQL防漏洞注入攻击小结/// 
 37SQL防漏洞注入攻击小结///     
 38SQL防漏洞注入攻击小结/// 
 39SQL防漏洞注入攻击小结public void ProcessRequest()
 40SQL防漏洞注入攻击小结{
 41SQL防漏洞注入攻击小结    try
 42SQL防漏洞注入攻击小结    {
 43SQL防漏洞注入攻击小结        string getkeys = "";
 44SQL防漏洞注入攻击小结        string sqlErrorPage = System.Configuration.ConfigurationSettings.AppSettings["ErrorPage"].ToString();
 45SQL防漏洞注入攻击小结        if (System.Web.HttpContext.Current.Request.QueryString != null)
 46SQL防漏洞注入攻击小结        {
 47SQL防漏洞注入攻击小结
 48SQL防漏洞注入攻击小结            for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++)
 49SQL防漏洞注入攻击小结            {
 50SQL防漏洞注入攻击小结                getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];
 51SQL防漏洞注入攻击小结                if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys]))
 52SQL防漏洞注入攻击小结                {
 53SQL防漏洞注入攻击小结                    System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage + "?errmsg=" + getkeys + "有SQL攻击嫌疑!");
 54SQL防漏洞注入攻击小结                    System.Web.HttpContext.Current.Response.End();
 55SQL防漏洞注入攻击小结                }
 56SQL防漏洞注入攻击小结            }
 57SQL防漏洞注入攻击小结        }
 58SQL防漏洞注入攻击小结        if (System.Web.HttpContext.Current.Request.Form != null)
 59SQL防漏洞注入攻击小结        {
 60SQL防漏洞注入攻击小结            for (int i = 0; i < System.Web.HttpContext.Current.Request.Form.Count; i++)
 61SQL防漏洞注入攻击小结            {
 62SQL防漏洞注入攻击小结                getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i];
 63SQL防漏洞注入攻击小结                if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys]))
 64SQL防漏洞注入攻击小结                {
 65SQL防漏洞注入攻击小结                    System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage + "?errmsg=" + getkeys + "有SQL攻击嫌疑!");
 66SQL防漏洞注入攻击小结                    System.Web.HttpContext.Current.Response.End();
 67SQL防漏洞注入攻击小结                }
 68SQL防漏洞注入攻击小结            }
 69SQL防漏洞注入攻击小结        }
 70SQL防漏洞注入攻击小结    }
 71SQL防漏洞注入攻击小结    catch
 72SQL防漏洞注入攻击小结    {
 73SQL防漏洞注入攻击小结        // 错误处理: 处理用户提交信息!
 74SQL防漏洞注入攻击小结    }
 75SQL防漏洞注入攻击小结}
 76SQL防漏洞注入攻击小结#endregion
 77SQL防漏洞注入攻击小结
 78SQL防漏洞注入攻击小结
 79SQL防漏洞注入攻击小结
 80SQL防漏洞注入攻击小结
 81SQL防漏洞注入攻击小结#region 转换sql代码(也防止sql注入式攻击,可以用于业务逻辑层,但要求UI层输入数据时候进行解码)
 82SQL防漏洞注入攻击小结/// 
 83SQL防漏洞注入攻击小结/// 提取字符固定长度
 84SQL防漏洞注入攻击小结/// 
 85SQL防漏洞注入攻击小结/// 
 86SQL防漏洞注入攻击小结/// 
 87SQL防漏洞注入攻击小结/// 
 88SQL防漏洞注入攻击小结public string CheckStringLength(string inputString, Int32 maxLength)
 89SQL防漏洞注入攻击小结{
 90SQL防漏洞注入攻击小结    if ((inputString != null) && (inputString != String.Empty))
 91SQL防漏洞注入攻击小结    {
 92SQL防漏洞注入攻击小结        inputString = inputString.Trim();
 93SQL防漏洞注入攻击小结
 94SQL防漏洞注入攻击小结        if (inputString.Length > maxLength)
 95SQL防漏洞注入攻击小结            inputString = inputString.Substring(0, maxLength);
 96SQL防漏洞注入攻击小结    }
 97SQL防漏洞注入攻击小结    return inputString;
 98SQL防漏洞注入攻击小结}
 99SQL防漏洞注入攻击小结
100SQL防漏洞注入攻击小结/// 
101SQL防漏洞注入攻击小结/// 将输入字符串中的sql敏感字,替换成"[敏感字]",要求输出时,替换回来
102SQL防漏洞注入攻击小结/// 
103SQL防漏洞注入攻击小结/// 
104SQL防漏洞注入攻击小结/// 
105SQL防漏洞注入攻击小结public string MyEncodeInputString(string inputString)
106SQL防漏洞注入攻击小结{
107SQL防漏洞注入攻击小结    //要替换的敏感字
108SQL防漏洞注入攻击小结    string SqlStr = @"and|or|exec|execute|insert|select|delete|update|alter|create|drop|count|\*|chr|char|asc|mid|substring|master|truncate|declare|xp_cmdshell|restore|backup|net +user|net +localgroup +administrators";
109SQL防漏洞注入攻击小结    try
110SQL防漏洞注入攻击小结    {
111SQL防漏洞注入攻击小结        if ((inputString != null) && (inputString != String.Empty))
112SQL防漏洞注入攻击小结        {
113SQL防漏洞注入攻击小结            string str_Regex = @"\b(" + SqlStr + @")\b";
114SQL防漏洞注入攻击小结
115SQL防漏洞注入攻击小结            Regex Regex = new Regex(str_Regex, RegexOptions.IgnoreCase);
116SQL防漏洞注入攻击小结            //string s = Regex.Match(inputString).Value; 
117SQL防漏洞注入攻击小结            MatchCollection matches = Regex.Matches(inputString);
118SQL防漏洞注入攻击小结            for (int i = 0; i < matches.Count; i++)
119SQL防漏洞注入攻击小结                inputString = inputString.Replace(matches[i].Value, "[" + matches[i].Value + "]");
120SQL防漏洞注入攻击小结
121SQL防漏洞注入攻击小结        }
122SQL防漏洞注入攻击小结    }
123SQL防漏洞注入攻击小结    catch
124SQL防漏洞注入攻击小结    {
125SQL防漏洞注入攻击小结        return "";
126SQL防漏洞注入攻击小结    }
127SQL防漏洞注入攻击小结    return inputString;
128SQL防漏洞注入攻击小结
129SQL防漏洞注入攻击小结}
130SQL防漏洞注入攻击小结
131SQL防漏洞注入攻击小结/// 
132SQL防漏洞注入攻击小结/// 将已经替换成的"[敏感字]",转换回来为"敏感字"
133SQL防漏洞注入攻击小结/// 
134SQL防漏洞注入攻击小结/// 
135SQL防漏洞注入攻击小结/// 
136SQL防漏洞注入攻击小结public string MyDecodeOutputString(string outputstring)
137SQL防漏洞注入攻击小结{
138SQL防漏洞注入攻击小结    //要替换的敏感字
139SQL防漏洞注入攻击小结    string SqlStr = @"and|or|exec|execute|insert|select|delete|update|alter|create|drop|count|\*|chr|char|asc|mid|substring|master|truncate|declare|xp_cmdshell|restore|backup|net +user|net +localgroup +administrators";
140SQL防漏洞注入攻击小结    try
141SQL防漏洞注入攻击小结    {
142SQL防漏洞注入攻击小结        if ((outputstring != null) && (outputstring != String.Empty))
143SQL防漏洞注入攻击小结        {
144SQL防漏洞注入攻击小结            string str_Regex = @"\[\b(" + SqlStr + @")\b\]";
145SQL防漏洞注入攻击小结            Regex Regex = new Regex(str_Regex, RegexOptions.IgnoreCase);
146SQL防漏洞注入攻击小结            MatchCollection matches = Regex.Matches(outputstring);
147SQL防漏洞注入攻击小结            for (int i = 0; i < matches.Count; i++)
148SQL防漏洞注入攻击小结                outputstring = outputstring.Replace(matches[i].Value, matches[i].Value.Substring(1, matches[i].Value.Length - 2));
149SQL防漏洞注入攻击小结
150SQL防漏洞注入攻击小结        }
151SQL防漏洞注入攻击小结    }
152SQL防漏洞注入攻击小结    catch
153SQL防漏洞注入攻击小结    {
154SQL防漏洞注入攻击小结        return "";
155SQL防漏洞注入攻击小结    }
156SQL防漏洞注入攻击小结    return outputstring;
157SQL防漏洞注入攻击小结}