php中mysqli预处理防御sql注入攻击

AlanblogAlan 41人围观

闹心的sql注入

长期以来,web的安全性存在着巨大的争议与挑战。其中,sql注入就是一种常见的一种攻击方法,开发人员普遍的做法就是不停的过滤,转义参数,可是php天生弱类型的机制,总是让黑客有机可乘。

记得很久以前看到过一位大牛说过的一句话,在一个程序中,60%的代码都应该是在进行各种防御。其实,现在来看,防御sql注入其实并不需要进行各种参数过滤,以下将开启干货模式!PHP5.x开始引入了一种新的mysql操作方式--mysqli,在php中也有一项相应的操作方式叫做PHP预处理。采用面向对象的方式来进行参数化绑定操作,由于对数据库操作的模式驱动不同,因此可以非常有效的防御sql注入。

代码示例

写在最后

上面是php预处理中一个非常简单的例子,它内置的其他函数能很方便我们的开发速度,那么看到这里,很多人可能还是不明白,有人可能想问,你这个绑定参数是不是还是在拼凑sql语句?如果是拼凑语句,那还不是会产生注入吗?这就要从他的操作原理来解释了,其实它在prepare操作中,就已经在数据库中,执行了语句,以后的绑定参数和执行,只不过是再传递数据进去而已,所以根本不会和sql语句拼接,也就自然不会将危险代码执行。因此,在这种模式下sql注入就能很有效的被防御了。


转载请注明来自Alan博客,本文标题:php中mysqli预处理防御sql注入攻击

发布评论
生活是一场戏,主角当累了,你亦可成为观众,停下脚步,歇一歇
Top