MySQL注入预防不起作用?

use*_*873 2 php mysql security

我想使用mysql_real_escape_string阻止1 = 1,但不确定我是否正确,因为我仍然可以执行1 = 1.这是我的代码:

$memberId = mysql_real_escape_string($_GET["memberId"]);
$sql = "SELECT firstName, lastName, dateSent, message, messageId FROM member, message WHERE member.memberId = message.sentFromId AND message.inboxId=" . $memberId . " ORDER BY dateSent DESC;";
Run Code Online (Sandbox Code Playgroud)

谢谢

Mar*_*c B 6

mysql_real_escape_ STRING()用于STRINGS,而不是整数.没有什么1=1需要转义,所以m_r_e_s()会将它传回来不变.

如果你正在处理整数,那么使用整数工具:

$memberID = intval($_GET['memberId']);
Run Code Online (Sandbox Code Playgroud)