首页新闻找找看学习计划

寻求web项目防sql注入防范方案

0
悬赏园豆:50 [已关闭问题]

本人最近参与一个项目,分配到一个任务是解决系统中存在的sql注入漏洞的问题。

项目的大概情况:

数据通过参数传给数据库的存储过程,但是存储过程是通过拼接语句完成的,并且项目中运行代码传个strWhere作为查询的条件,这个strWhere也是通过拼接一些数据得到的。

目前项目已经上线了,为了最少的修改成本和尽可能的确定安全的防范效果,请各位提些相应的可行的方案,小弟不胜感激!!!

Janksen的主页 Janksen | 初学一级 | 园豆:100
提问于:2009-06-09 17:16
< >
分享
其他回答(6)
0

全部使用参数化查询就可以规避注入问题

参考:http://www.cnblogs.com/tronic/archive/2007/02/14/650306.html

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-06-09 17:33
0

楼主的方案应该已经没有用参数化查询吧!! 不过我也建议使用参数化查询!

另外注入的方法很多 跨域注入也是一种。。如果单独的sql注入好像除了 '  这个需要替换成''  ...其他注入都会报错! 如果是含有html的 就用HtmlEncode一下..其他好像没有什么好说的了..

Allie | 园豆:707 (小虾三级) | 2009-06-09 17:56
0

唉,你的任务很郁闷,简直是让你不带伞却要在雨中躲雨一样

zjy | 园豆:3194 (老鸟四级) | 2009-06-09 22:51
0

呵呵最好的是使用存储过程因为现在几乎大家都在用这个,用存储过程你的问题就不用多说了,但是说真的你的项目改还真不好改,但是为了方便以后改去和安全,你建议你还是存储过程化一下比较好点

苏飞 | 园豆:2024 (老鸟四级) | 2009-06-10 09:30
0

个人看法啊:既然不能使用参数形式,不如就做语句检查吧!把相关的系统关键字、用户关键字做成字典,每次对“用户输入”的语句进行检查。或者仿照javascript 防注入的方式,使用特殊编辑器进行二次转译等。算法可能显得“蛮力”点,但毕竟可以满足需求啊。

最后,拼接语句实在问题多啊,哪怕设法拼接参数组,也不能简单拼接语句啊,呵呵。

陛下 | 园豆:3938 (老鸟四级) | 2009-06-10 09:38
0

替换关键字

或者文字转译

你的方案也只能这么弄

也许还有高手意见更好

...

追太阳的向日葵 | 园豆:29 (初学一级) | 2009-06-10 19:31
0

如实不能用参数化处理的话,只能过滤关键字,其实也不复杂,自己写个GetSafeStr(string strWhere)的Method过滤掉几个主要的危险关键字就可以了

菩提树下的杨过 | 园豆:554 (小虾三级) | 2009-06-10 20:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册