首页 新闻 会员 周边 捐助

一个关于防止SQL注入式攻击的问题...

0
[已解决问题] 解决于 2009-03-26 14:02

各位大虾:请教个问题,我用一个算法把地址栏传递的参数加密后能不能防止SQL的注入式攻击呢?比如我把一个参数21加密后转换成1D33099EC2D94AB4,然后在后台再解密后传递到SQL数据库中做数据操作,这个时候要是有注入式脚本的话,在调用后台解密的时候它的脚本是不会被原样调用到数据库操作的,在解密的时候就会出现异常了,这个办法是不是可以间接的防止在地址栏中进行SQL的注入式攻击呢?

握薪尝蛋的主页 握薪尝蛋 | 初学一级 | 园豆:145
提问于:2009-03-23 21:56
< >
分享
最佳答案
0

恩,如果你的数据层还没有写,可以使用参数化的方式

 

SqlParameter,DbParameter

 

恩,如果你的数据访问曾已经完成了,可以考虑使用httpModule,进行统一的拦截,大致思路,就是每一个页面请求都判断外界传进的参数,是否合法。不合法就转到错误页面。其实现可以google一下

llj098 | 小虾三级 |园豆:825 | 2009-03-23 23:01
其他回答(5)
0

如果能把所有语句参数化,基本就可以防止注入了

你这样也许是可以的,但是还不很保险感觉

jowo | 园豆:2834 (老鸟四级) | 2009-03-23 22:30
0

全部参数化。存储过程不要拼语句。

zeus2 | 园豆:92 (初学一级) | 2009-03-23 22:37
0

恩,三楼的兄台说的不错,存储过程最好参数化,我最近在改一个网站,里面全是拼的SQL语句,被人黑的惨不忍睹,对于防止URL参数不被篡改还有一个办法就是对在参数加密之前生成一个唯一验证码,和参数一起传递过去,这样再接受到参数之后解密之后再次生成验证码和验证码比对,这样就比较绕了点了

静夜品茗 | 园豆:155 (初学一级) | 2009-03-24 00:14
0

21加密后转换成1D33099EC2D94AB4,楼主用的是什么加密。

几度夕阳红了 | 园豆:190 (初学一级) | 2009-03-24 09:04
0

我觉得应该是可以的。参数串随便改变一个 都会不能解密

世界万物 | 园豆:276 (菜鸟二级) | 2012-02-22 10:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册