关于mysql预处理语句防注入底层处理问题
phpcn_u5077
phpcn_u5077 2017-06-15 18:24:58
0
2
1699

PHP的PDO对象或STMT对象 执行包含注入的SQL语句
查看MYSQL日志发现只是把第二个单引号转义了
SELECT * FROM admin WHERE  user = '123' or 1 = 1#'
而用C和其他语言调用libmysql.dll的原生API 日志是这样
select * from admin where user = X'313233'
处理方式是把参数转换为十六进制

都是预处理 底层处理为何会出现两种不同的方式?

PHP封装的预处理函数是否基于MYSQL的原生API?

百度另一种说法PHP的预处理是伪参数查询(仿真预处理)但是百度这方面没什么介绍资料
这种说法是否属实?

希望大神可以解惑 小弟再次谢过!

phpcn_u5077
phpcn_u5077

全部回复(2)
美食控

php大神,都在研究底层了

  • 回复 不是大神 碰到奇怪而感兴趣的事情喜欢刨根问底
    phpcn_u5077 作者 2017-06-16 07:31:17
shuffle

虽然听不懂你在说什么,但是感觉好高端的样子

  • 回复 。。。。。。
    phpcn_u5077 作者 2017-06-16 07:33:44
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!