首页 > 关于SQL注入,为何用占位符就可以防止注入额?

关于SQL注入,为何用占位符就可以防止注入额?

请教下各位前辈,为啥用字符串凭借就不能防止注入额?
结果不都是拼接成SQL语句吗?


你用的driver可不是把sql当做字符串传到server的,预编译过了, column都定了,你再怎么注入也最多改变column的值


请看 占位符,SQL注入? ,说的比较好,给你解析了jdbc包怎么去做的占位符解析


查查parameter方式的原理。。。


直接拼接是没有做检查的,变量替换是有做检查的。


虽然你没写,但是在连接驱动里面有过滤处理的


这是用到了prepare statement的方式,SQL已经预编译好了,然后替换中间的占位符,这个占位符在编译后就已经确定了它只是一个参数属性。

因此,你用注入的代码去替换占位符,这个SQL也不会再进行编译了,所以也达不到注入的目的。

【热门文章】
【热门文章】