实用技巧——检测字符串在SQL中是否危险

      /// <summary>
        /// 检测字符串中是否有SQL攻击代码
        /// </summary>
        /// <param name="sqlString">待检测的字符串</param>
        /// <returns>True:不危险,False:危险</returns>
        public static bool IsSecurity(string sqlString)
        {
            if (string.IsNullOrWhiteSpace(sqlString))
                return false;
            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";
            string str_Regex = @"\b(" + SqlStr + @")\b";

            Regex regex = new Regex(str_Regex, RegexOptions.IgnoreCase);
            if (regex.IsMatch(sqlString))
                return false;
            return true;
        }

        /// <summary>
        /// 过滤危险SQL字符
        /// </summary>
        public static string FilterString(string sqlString)
        {
            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";
            if (string.IsNullOrWhiteSpace(sqlString))
                return sqlString;

            string str_Regex = @"\b(" + SqlStr + @")\b";

            //替换危险字符串
            sqlString = Regex.Replace(sqlString, str_Regex, "", RegexOptions.IgnoreCase);
            return sqlString;
        }
    }

转载于:https://www.cnblogs.com/RoyMing/archive/2010/07/06/1772059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值