要过滤数据库输入

要过滤数据库输入

作者:LAMP小白  点击:1661  发布日期:2012-10-07 16:01:00  返回列表
转义 SQL 语句中使用的字符串中的特殊字符。
下列字符受影响:
x00
n
r
mio_#39;
mio_quot;
x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。

方法
string mysqli::escape_string ( string $escapestr )
string mysqli::real_escape_string ( string $escapestr )
过程化风格
string mysqli_real_escape_string ( mysqli $link , string $escapestr)

一个简单的数据库攻击 转
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
$sql = "SELECT * FROM users
WHERE user='{$_POST['user']}'
AND password='{$_POST['pwd']}'";
mysql_query($sql);
// 不检查用户名和密码
// 可以是用户输入的任何内容,比如:
$_POST['user'] = 'john';
$_POST['pwd'] = "' OR ''='";
// 一些代码...
mysql_close($con);

那么 SQL 查询会成为这样:

SELECT * FROM users
WHERE user=mio_#39;johnmio_#39; AND password=mio_#39;mio_#39; OR mio_#39;mio_#39;=mio_#39;mio_#39;


上一篇:专业VS业余 内务部部队北高加索作战 下一篇:快递查询API
0