나는 다음과 같은 코드가 있습니다매개 변수를 바인딩하는 경우 mysql_real_escape_string을 사용해야합니까?
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 또는 내가 좋아 생각해야합니까를? DB를 엔진 자체가 그렇게 할 것입니다 :
SQL 주입에 영향을주지 않는 매개 변수 만 있습니다. '$ dbtable'과 같은 쿼리 문자열에 직접 보간 된 변수는 값이 사용자 입력에서 오는 경우 잠재적 인 벡터입니다. 물론 테이블 및 열 이름과 같은 항목은 사용자 입력에서 직접 가져 오지 않아야합니다. – outis