当前位置: 代码迷 >> ASP.NET >> 关于SQL过滤,仅过滤单引号是否可以防止注入(access,sqlserver),该如何处理
  详细解决方案

关于SQL过滤,仅过滤单引号是否可以防止注入(access,sqlserver),该如何处理

热度:6158   发布时间:2013-02-25 00:00:00.0
关于SQL过滤,仅过滤单引号是否可以防止注入(access,sqlserver)
关于SQL过滤,仅过滤单引号是否可以防止注入(access,sqlserver)?

------解决方案--------------------------------------------------------
不行的,最好用参数传递
------解决方案--------------------------------------------------------
对于字符串型的把单引号替换成两个单引号就应该没事了
------解决方案--------------------------------------------------------
不行。

最好用存储过程。。
------解决方案--------------------------------------------------------
最好是用参数来做
'替换成 ' '也不行的
因为 '可以用nchar(25143)来表示
------解决方案--------------------------------------------------------
用参数来做吧
SQL 注入,不仅是对单引号来。
单引号只是注入的试探性工作。

没有绝对的安全可言
------解决方案--------------------------------------------------------
自己写个
public static string SqlFormat(string sqlStr, params object[] parameterValues);
反射一下.NET类库里的String.Format()方法照着抄就行了
------解决方案--------------------------------------------------------
%呢?
------解决方案--------------------------------------------------------
String.Format() ???

和拼接字符串一个效果,同样是什么都不防

我刚接手公司前一位同志做的项目,还好他都是用这个方法写的查询,让我能轻松用注入的方法登录,不然MD5加的密,鬼才知道用户的密码是什么。
------解决方案--------------------------------------------------------
除了单引号还有“;”注入,防不胜防,还是用Parameters好呀,安全省心
------解决方案--------------------------------------------------------
用参数形式,不要拼接sql
  相关解决方案