php – 通过URL参数进行SQL注入
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 通过URL参数进行SQL注入,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2026字,纯文字阅读大概需要3分钟。
内容图文
![php – 通过URL参数进行SQL注入](/upload/InfoBanner/zyjiaocheng/893/a2892d858619400ca7e6cfaed5286042.jpg)
参见英文答案 > How can I prevent SQL injection in PHP? 28个
我刚刚在我的webstats中看到有人在一个url参数中附加了很多SQL代码.网址如下所示:
http://www.example.com/page.php?id=672%3f%20and%28select%201%20from%28select%20count%28*%29%2cconcat%28%28select%20%28select%20concat%280x7e%2c0x27%2cunhex%28hex%28cast%28database%28%29%20as%20char%29%29%29%2c0x27%2c0x7e%29%29%20from%20%60information_schema%60.tables%20limit%200%2c1%29%2cfloor%28rand%280%29*2%29%29x%20from%20%60information_schema%60.tables%20group%20by%20x%29a%29%20and%201%3d1
http://www.example.com/page.php?id=convert%28int%2cdb_name%28%29%29--
http://www.example.com/page.php?id=999999.9%20union%20all%20select%200x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536%2c0x31303235343830303536--
还有一些……
我的代码看起来像这样:
$myid = intval($_GET['id']);
$stmt = $con->prepare("SELECT *
FROM mytable AS r
WHERE r.ID =:ID");
$stmt->bindValue(':ID', $myid, PDO::PARAM_INT);
我的问题是:
我的代码安全吗?
我如何检查这些查询的结果是什么?我的意思是我的页面只回显了我要求的变量.但攻击者当然希望看到他/她所查询的内容.
解决方法:
这很安全.在预准备语句中,参数值永远不会实际插入到查询字符串中.查询在参数之前发送到数据库服务器.因此,没有注射的机会.在你的例子中:
发送到数据库服务器:
$stmt = $con->prepare("SELECT * FROM mytable AS r WHERE r.ID =:ID");
将参数发送到数据库服务器:
$stmt->bindValue(':ID', $myid, PDO::PARAM_INT);
这是除非您使用模拟的预准备语句.要启用预准备语句:
$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
内容总结
以上是互联网集市为您收集整理的php – 通过URL参数进行SQL注入全部内容,希望文章能够帮你解决php – 通过URL参数进行SQL注入所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。