登录  /  注册
关于mysql预处理语句防注入底层处理问题
phpcn_u5077
phpcn_u5077 2017-06-15 18:24:58
[PHP讨论组]

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号