关于网友提出的“防SQL注入 关于sql注入”问题疑问,本网通过在网上对“防SQL注入 关于sql注入”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:防SQL注入 关于sql注入描述:
关于sql注入
一般情况下,我是传parame来操作,最近看到别人用正则匹配来处理这个sql注入。
习惯用param来处理,不知道这个正则匹配处理与param相比,是否可以取代param传参方式?
解决方案1:
微软的东西 还是配套用 绝对没有错 解决方案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;
}
SQL语句不要拼接的形式
尽量使用存储过程
过滤特殊字符输入
参考
一般都这个 解决方案6:
学习,学习,这样过滤应该没问题 了
解决方案7: 正则表达式处理注入是倒数第二差的作法。
param 才是正道,性能也最好。