【发布时间】:2015-11-17 00:57:25
【问题描述】:
我有以下代码:
function dbPublish($status)
{
global $dbcon, $dbtable;
if(isset($_GET['itemId']))
{
$sqlQuery = 'UPDATE ' . $dbtable . ' SET active = ? WHERE id = ?';
$stmt = $dbcon->prepare($sqlQuery);
$stmt->bind_param('ii', $status, $_GET['itemId']);
$stmt->execute();
$stmt->close();
}
}
在这种情况下我需要 mysql_real_escape_string 还是可以?
【问题讨论】:
-
注意只有参数对SQL注入免疫;任何直接插入到查询字符串中的变量(例如
$dbtable)都是潜在向量,如果其值来自用户输入。当然,表名和列名之类的内容绝不应该直接来自用户输入。
标签: php sql mysql sql-injection mysql-real-escape-string