App_Code/checksql.cs

(完整代码) 2KB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections.Specialized;


/// <summary>
///checksql 的摘要说明
/// </summary>
public class CheckSql
{

    public static bool check(NameValueCollection FormNV, NameValueCollection QueryNV)
        {
            string Fy_getIn, Fy_postIn;
            int i;
            bool SqlIn=false;
            Fy_getIn = "exec|insert|select|delete|update|master|truncate|declare|chr|char|mid|*|#|%";//get方法要过滤的 xtype=char(85)
            //%53为大写的S %73为小写的s,都是十六进制的
            Fy_postIn = "exec|insert|select|delete|update|master|truncate|declare";//post方法要过滤的
            string[] Fy_postInf = Fy_postIn.Split('|');//分离攻击post字符
            string[] Fy_getInf = Fy_getIn.Split('|');//分离攻击get字符
            //=============================post=================
            if (FormNV.Count != 0)
            {
                foreach (string Fy_Post in FormNV.Keys)
                {
                    for (i = 0; i < Fy_postInf.GetUpperBound(0); i++)//判断是否为sql注入   单词GetUpperBound可以获取数组的最高下标。GetLowerBound可以获取数组的最低下标。0表示二维数组的第一维,1表示数组的第二维
                        if (FormNV[Fy_Post].IndexOf(Fy_postInf[i].ToLower()) != -1)
                        {
                            SqlIn=true;break;//POST方法存在SQL关键字
                        }
                }
            }
            //================get====
            if (QueryNV.Count != 0&&!SqlIn)
            {
                foreach (string Fy_Get in QueryNV.Keys)
                {
                    for (i = 0; i < Fy_getInf.GetUpperBound(0); i++)//判断是否为sql注入单词,如果是则保存攻击信息
                        if (QueryNV[Fy_Get].ToLower().IndexOf(Fy_getInf[i].ToLower()) != -1)//QueryNV[Fy_Get]会把%53变成S,所以也需要使用ToLower函数。
                        {
                            SqlIn=true;break;//GET方法存在SQL关键字
                        }
                }
            }
            return SqlIn;
        }

}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。