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

大连刘 2007-06-13 01:46:25
关于SQL过滤,仅过滤单引号是否可以防止注入(access,sqlserver)?
...全文
1014 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
小王的呐喊 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 my97 的回复:]

最好是用参数来做
'替换成 ' '也不行的
因为 '可以用nchar(25143)来表示
[/Quote]
这位兄弟,我不知道你用这个怎么注入啊
Jinglecat 2007-06-13
  • 打赏
  • 举报
回复
用参数形式,不要拼接sql
jerryfos 2007-06-13
  • 打赏
  • 举报
回复
除了单引号还有“;”注入,防不胜防,还是用Parameters好呀,安全省心
大连刘 2007-06-13
  • 打赏
  • 举报
回复
照你们这说SQL语句的使用就没有安全可言了?
谁给我个解决方法。不用什么参数和存储过程,更不能加密。
lonehare 2007-06-13
  • 打赏
  • 举报
回复
String.Format() ???

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

我刚接手公司前一位同志做的项目,还好他都是用这个方法写的查询,让我能轻松用注入的方法登录,不然MD5加的密,鬼才知道用户的密码是什么。
godgreat 2007-06-13
  • 打赏
  • 举报
回复
%呢?
可爱的排骨 2007-06-13
  • 打赏
  • 举报
回复
自己写个
public static string SqlFormat(string sqlStr, params object[] parameterValues);
反射一下.NET类库里的String.Format()方法照着抄就行了
大连刘 2007-06-13
  • 打赏
  • 举报
回复
传参的话,很多时后不够复杂,怕满足不了我的需要啊,谁给发个万能函数代码看看。
codeangel 2007-06-13
  • 打赏
  • 举报
回复
用参数来做吧
SQL 注入,不仅是对单引号来。
单引号只是注入的试探性工作。

没有绝对的安全可言
大连刘 2007-06-13
  • 打赏
  • 举报
回复
nchar(25143)
?!!!
太恐怖了。
我要把它也给过滤了呢?
My97 2007-06-13
  • 打赏
  • 举报
回复
最好是用参数来做
'替换成''也不行的
因为'可以用nchar(25143)来表示
大连刘 2007-06-13
  • 打赏
  • 举报
回复
如果是数字型的字段,作个判断,如果是数字就通,不是就拒绝。
其它类型的就全用单引号过滤,这样应该绝对没问题了吧?

(另外一个,我不愿存储过程,而且我觉得应用服务器和数据库服务器同在一个SERVER上,用不用存储过程好象没有意思啊,工作都是在这一台服务器上作的,消耗的也是同样的资源。我感觉这就象使用web serives一样,它用在分布式应用中还有意义,如果同在一台服务器,这不是明显撤蛋行为吗?)
sibyle 2007-06-13
  • 打赏
  • 举报
回复
不行。

最好用存储过程。。
Snowdust 2007-06-13
  • 打赏
  • 举报
回复
对于字符串型的把单引号替换成两个单引号就应该没事了
balenoww 2007-06-13
  • 打赏
  • 举报
回复
不行的,最好用参数传递

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧