-2

SQL インジェクションを回避するには、PDO 準備済みステートメントを使用する必要があることを知っています。常に次の形式にする必要があります。

$stmt = $db->prepare('SELECT * FROM table where id = :id');
$stmt->execute( array(':id' => $_GET['id']) );

または、次の形式のいずれかも SQL インジェクションを無効にしますか?

バージョン 1

$queryString = "SELECT * FROM table WHERE id = ".$_GET['id'];
$stmt= $db->prepare($queryString);  
$stmt->execute();
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);

バージョン 2

$stmt = $db->query("SELECT * FROM table WHERE id = ".$_GET['id']);
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
4

1 に答える 1

1

最初のコードで行ったように、変数をバインドする必要があります。とコードはどちらもVersion 1INSECUREですVersion 2

于 2013-06-13T03:21:45.760 に答える