首页 新闻 会员 周边 捐助

存储过程真能防止数据库注入吗?为什么?

0
[已关闭问题]

存储过程真能防止数据库注入吗?为什么?各位大侠能否说一下原理啊?

Jaryleely的主页 Jaryleely | 菜鸟二级 | 园豆:367
提问于:2009-08-22 14:34
< >
分享
其他回答(2)
0

出现SQL注入,一般注入语句都是写在参数中。如果拼接SQL的方式,然后再执行sql语句,注入语句会出现在SQL语句中。

存储过程使用的是参数化形式,所有的参数,无论是参数还是用于注入的SQL语句,都会作为参数。所以不容易出现sql注入。但是要避免使用将sql语句拼接完成后传入到存储过程,这样还会出现sql注入。

避免sql注入的方式就是参数化。

侯垒 | 园豆:3435 (老鸟四级) | 2009-08-22 15:45
0

是的,如果存储过程里还是用SQL字符串拼接,还是不能防止注入,所以终极手段还是SQL参数化,在存储过程里面如果一定要拼接SQL,也可以对SQL语句参数化方式,可以避免注入

代码乱了 | 园豆:213 (菜鸟二级) | 2009-08-22 18:58
0

同意以上两位的看法。

Kinglee | 园豆:3158 (老鸟四级) | 2009-08-24 13:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册