重複の可能性:
PHPでSQLインジェクションを防ぐための最良の方法
私のウェブサイトでは、ユーザーは投稿を送信したり、投稿を削除したりできます。
/posts.php?deletid=X
投稿を削除するには、Xがデータベース内の投稿のIDであるリンクをたどります(例:1)。
クリックすると、次のように実行されます。
if(isset($_GET['deleteid'])) {
$deleteid = $_GET['deleteid'];
$sql = "DELETE from `posts` WHERE `id`=".mysql_real_escape_string($deleteid).";";
$query = mysql_query($sql);
header('Location: posts.php');
exit();
}
問題は、1 =1SQLインジェクションに対して脆弱であるということです。アドレスバー/posts.php?deletid=1 OR 1=1;
に入力すると、データベース上のすべての投稿が削除されます。
この質問では:PHPでSQLインジェクションを防ぐにはどうすればよいですか?、mysqliステートメントを使用する必要があることに気付き、それを機能させようとしましたが、成功しませんでした。
誰かがmysqliでこれを防ぐ方法を正確に教えてもらえますか?