私はビデオ Web サイトのプロジェクトに取り組んでいます。データベースから情報を取得し、必要に応じて詳細を挿入します。
これまでのところすべてが完全に機能していますが、SQL インジェクション テストを行ったところ、すべてが完全にオープンです。私はそれを閉じて物事をもう少し安全にするための答えを探していました.
PDO ステートメントを実装しようとしましたが、理解できません。私は今月 php/sql に取り組んでいるので、非常に新しいです。
以下のコードは、最も脆弱な部分でもあると思われるページの主要な接続ポイントです。
<?php
$username="********";
$password="*******";
$database="*******";
$id = $_GET['id'];
$badchars = array("\"", "\\", "/", "*", "'", "=", "-", "#", ";", "<", ">", "+", "%");
$myid = str_replace($badchars, "", $id);
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$result = mysql_query("SELECT * FROM Videos WHERE id='$id'");
while($row = mysql_fetch_array($result)) {
$title=mysql_result($result,0,"title");
$url=mysql_result($result,0,"url");
$id=mysql_result($result,0,"id");
$description=mysql_result($result,0,"description");
$source=mysql_result($result,0,"source");
$type=mysql_result($result,0,'type');
}
?>