防SQL注入 关于sql注入

来源:互联网  时间:2016/7/1 11:41:14

关于网友提出的“防SQL注入 关于sql注入”问题疑问,本网通过在网上对“防SQL注入 关于sql注入”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:防SQL注入 关于sql注入
描述:

关于sql注入
一般情况下,我是传parame来操作,最近看到别人用正则匹配来处理这个sql注入。
习惯用param来处理,不知道这个正则匹配处理与param相比,是否可以取代param传参方式?


解决方案1:

引用 2 楼 winner2050 的回复:
正则表达式处理注入是倒数第二差的作法。
param 才是正道,性能也最好。

微软的东西 还是配套用 绝对没有错  解决方案2:

如果要用到过滤字符时如何处理?

解决方案3:

   /// 


        /// 防止SQL 注入式攻击
        /// 

        /// 
        /// 
        public static string ConvertSql(string inputString)
        {
            inputString = inputString.Trim();
            inputString = inputString.Replace("'", "''");
            inputString = inputString.Replace(";--", "#");
            inputString = inputString.Replace("=", "#");
            inputString = inputString.Replace("or", "#");
            inputString = inputString.Replace("OR", "#");
            inputString = inputString.Replace("and", "#");
            inputString = inputString.Replace("AND", "#");
            inputString = inputString.Replace("exec", "#");
            inputString = inputString.Replace("execute", "#");
            inputString = inputString.Replace("insert", "#");
            inputString = inputString.Replace("select", "#");
            inputString = inputString.Replace("delete", "#");
            inputString = inputString.Replace("update", "#");
            inputString = inputString.Replace("alter", "#");
            inputString = inputString.Replace("create", "#");
            inputString = inputString.Replace("drop", "#");
            inputString = inputString.Replace("*", "#");
            inputString = inputString.Replace("chr", "#");
            inputString = inputString.Replace("char", "#");
            inputString = inputString.Replace("asc", "#");
            inputString = inputString.Replace("char", "#");
            inputString = inputString.Replace("mid", "#");
            inputString = inputString.Replace("substring", "#");
            inputString = inputString.Replace("master", "#");
            inputString = inputString.Replace("truncate", "#");
            inputString = inputString.Replace("declare", "#");
            inputString = inputString.Replace("xp_cmdshell", "#");
            inputString = inputString.Replace("restore", "#");
            inputString = inputString.Replace("backup", "#");
            return inputString;
        }

解决方案4:

SQL语句不要拼接的形式
尽量使用存储过程
过滤特殊字符输入
参考

解决方案5:

引用 2 楼 winner2050 的回复:
正则表达式处理注入是倒数第二差的作法。
param 才是正道,性能也最好。

一般都这个 解决方案6:

学习,学习,这样过滤应该没问题 了

解决方案7:

正则表达式处理注入是倒数第二差的作法。
param 才是正道,性能也最好。

上一篇jquery的validate表单验证样式无效的问题
下一篇<%# Eval"Id"%>能不能放在style中????????
明星图片
相关文章
《防SQL注入 关于sql注入》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)