关于SQL过滤,仅过滤单引号是否可以防止注入(access,sqlserver)?
------解决方案--------------------------------------------------------
不行的,最好用参数传递
------解决方案--------------------------------------------------------
对于字符串型的把单引号替换成两个单引号就应该没事了
------解决方案--------------------------------------------------------
不行。
最好用存储过程。。
------解决方案--------------------------------------------------------
最好是用参数来做
'替换成 ' '也不行的
因为 '可以用nchar(25143)来表示
------解决方案--------------------------------------------------------
用参数来做吧
SQL 注入,不仅是对单引号来。
单引号只是注入的试探性工作。
没有绝对的安全可言
------解决方案--------------------------------------------------------
自己写个
public static string SqlFormat(string sqlStr, params object[] parameterValues);
反射一下.NET类库里的String.Format()方法照着抄就行了
------解决方案--------------------------------------------------------
%呢?
------解决方案--------------------------------------------------------
String.Format() ???
和拼接字符串一个效果,同样是什么都不防
我刚接手公司前一位同志做的项目,还好他都是用这个方法写的查询,让我能轻松用注入的方法登录,不然MD5加的密,鬼才知道用户的密码是什么。
------解决方案--------------------------------------------------------
除了单引号还有“;”注入,防不胜防,还是用Parameters好呀,安全省心
------解决方案--------------------------------------------------------
用参数形式,不要拼接sql