我如何使这个查询sql注入证明?

Jos*_*vis 2 php sql sql-injection

我怎样才能使这个查询sql注入证明?

$sql=mysql_query("SELECT * FROM updates ORDER BY item_id DESC LIMIT 16");
while($row=mysql_fetch_array($sql))
{
$msg_id=$row['item_id'];
$message=$row['item_content'];
}
Run Code Online (Sandbox Code Playgroud)

或者有人可以给我看一些例子,或者给我一个教程的链接,我对此很新,如果有人能帮助我,那就太好了!:)

Ada*_*kin 8

该查询已经是"SQL注入证明".

当您获取外部字符串并将其连接到查询而不使用绑定变量,转义或正确清理时,就会发生SQL注入攻击.

例如,如果您的查询如下所示:

$sql=mysql_query("SELECT * FROM updates where order_ref = '$order_ref' ORDER BY item_id DESC LIMIT 16");
Run Code Online (Sandbox Code Playgroud)

如果变量$order_ref可能受到环境的影响(HTTP查询参数,命令行参数,基本上任何可能受用户影响的事物),那么您将遇到问题.如果有人可以将值传递给您的应用程序,如" '; delete from updates;"那么您就会遇到问题.

我上面的例子中的一个解决方案是首先转义值,$order_ref如下所示:

$safe_order_ref = mysql_real_escape_string($order_ref);
$sql=mysql_query("SELECT * FROM updates where order_ref = '$safe_order_ref' ORDER BY item_id DESC LIMIT 16");
Run Code Online (Sandbox Code Playgroud)