且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

绕过mysql_real_escape_string()的SQL注入

更新时间:2023-02-05 21:53:33

考虑以下查询:

$iId = mysql_real_escape_string("1 OR 1=1");    
$sSql = "SELECT * FROM table WHERE id = $iId";

mysql_real_escape_string()不会保护您免受此侵害. 在查询中对变量使用单引号(' ')的事实是保护您免受此攻击的原因.以下是一种选择:

mysql_real_escape_string() will not protect you against this. The fact that you use single quotes (' ') around your variables inside your query is what protects you against this. The following is also an option:

$iId = (int)"1 OR 1=1";
$sSql = "SELECT * FROM table WHERE id = $iId";