pdo 防注入的原理 [猜想]
声明
来源我个人的猜想 ,仅供参考!!! 欢迎指正。
每个参数被''包涵
没有绑定的
预处理绑定
没有问题,因为id是数字。mysql只提取了前面的2做条件。
'转为\' (根本原因)
上面的想破坏很简单 传个'就好了。
没有绑定的
预处理绑定
总结
- mysql把每个参数都用
''
包围了 - 将有
'
的参数转化为\'
除非能让2失效,否则sql注入几乎不存在。
其他人的说法
哪怕参数中有sql命令也不会被执行,从而实现防治sql注入
我觉得是错误的说法。
个人对预处理的理解
预处理 绑定 执行
第一条sql走过这三个流程了,到第二条同样的sql绑定 执行 (只走两步)
后面依次如此。
预处理需要一点时间,比不绑定的慢(多个同样的命令就不一定了)。
预处理和防注入没有一点关系,只是pdo把参数处理了。
晚安~~
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: