为什么参数化查询sql能够防止sql注入?

OSC首席键客 发布于 2013/07/30 13:48
阅读 1K+
收藏 0
PHP

就拿php来说吧!

我目前找到的答案是:用参数化查询,数据库不会将参数的内容视为SQL指令的一部份来处理,而是在完成SQL指令的编译后,才套用参数运行。

其实也不是太理解这句话的意思。

加载中
0
LianyouCQ
LianyouCQ

不知道使用过java没有:

PreparedStatement类就是这种。更安全,更高效。

leo108
leo108
楼主问的是原理,不是实现
0
纠结名字_我艹你妹
纠结名字_我艹你妹
吃(饭)      你可以把饭换成屎或者鸡——巴,都要用你的嘴的。
0
月影又无痕
月影又无痕

PDO防注入原理分析以及使用PDO的注意事项

http://my.oschina.net/u/1168437/blog/148432


0
华兹格
华兹格
编译预处理 PreparedStatement
0
sxgkwei
sxgkwei

。。。因为如果参数化了,所有真正执行的语句就会变成这样:

select xx from t where t.xx=? and t.yy=? and t.zz like ?。所有的问号就是用户输入的内容,此时是用问号代替的,所以不管用户输入啥,都不会存在sql注入漏洞。

至于那如果这样怎么查询到相应真的需要查的信息呢,那就是一个问号一个问号的向里面再设置进去值了。

返回顶部
顶部