我在所有用户输入的地方,以及通过GET全传值的地方,我在服务器端将如下关键字进行替换,
我想请问这样做之后,SQL注入是不是100%解决了?或者说是我还需要改进哪些地方?
public static string ReplaceDB(string s)
{
s = s.ToLower();
s = s.Replace("-", "—"); //sql注释符
s = s.Replace("'", "′");//SQL单引号
s = s.Replace("<", "<");
s = s.Replace(">", ">");
//下面是SQL关键字
s = s.Replace("drop", "drop");
s = s.Replace("delete", "delete");
s = s.Replace("update", "update");
s = s.Replace("select", "select");
s = s.Replace("alter", "alter");
return s;
}
依靠替换不可能完全解决,对于SQL注入可以使用参数解决
最好是用参数化的方式
使用参数化吧,字符替换没啥鸟用
同意一楼的观点,使用存储过程参数化。
支持,对于SQL注入问题,最后是用存储过程替换SQL语句!