use*_*510 1 php mysql security get
可能重复:
什么是最好的PHP输入清理功能?
假设我有一个$_GET名为"id" 的变量.该$_GET变量随后在MySQL查询用来检索像一些数据SELECT text FROM database WHERE id=$_GET['id'];
,我会空字节注入$_GET变量影响我假设我使用的是常见的安全功能,如mysql_real_escape_string(),addslashes()和strip_tags()?
我的$ _GET变量中的空字节注入会影响我,假设我使用的是常见的安全函数,如mysql_real_escape_string(),addslashes()和strip_tags()?
可能不是,但更简单的注射会影响你.尝试将其作为GET参数传递:
99999 OR id=0
Run Code Online (Sandbox Code Playgroud)
并通过上面显示的查询运行它.它甚至在使用时 也允许注入任意SQL mysql_real_escape_string.
与普遍看法相反,如果您的价值未包含在报价中,mysql_real_escape_string()则不会保护您.
如果查询数值,请在将值插入字符串之前测试它是否为数字,或者将值放入引号:
$id = mysql_real_escape_string($_GET["id"]);
$query = "SELECT text FROM database WHERE id='$id'";
Run Code Online (Sandbox Code Playgroud)
addslashes并strip_tags没有任何价值可言在这方面.它们仅用于破坏数据,但在数据库中插入内容时不会增加安全性.摆脱它们.(strip_tags稍后在HTML页面上输出内容时可能适用.)
| 归档时间: |
|
| 查看次数: |
417 次 |
| 最近记录: |