サーバーがAPI
あり、すべての取得データをデータベースに入れる必要があります
データベースに接続した後にこのコードを使用します:
foreach ($_GET as $key => $value)
$_GET[$key] = mysql_real_escape_string($value);
私のコードは安全ですか?
いいえ、あなたのコードは安全ではありません! データをクエリにどのように配置するかはわかりません。これが最も重要なことです。
次のように、非常に多くの間違いを犯す可能性があります。
$sql = "INSERT INTO {$_GET[table]} ({$_GET[column]}) VALUES ('{$_GET[value]}')";
最後の値だけが安全にエスケープされ、最初の 2 つはそうではありません!
また、mysql_real_escape_string()
進行中のデータベース接続のエンコード設定を評価します。以前にデータベースに接続したことがありますか? エンコーディングを設定していますか?
最後に: 本当に必要になる前にエスケープしないでください。事前にエスケープされたデータが同時に別の目的で使用される可能性があるため、時期尚早のエスケープはあらゆる種類の問題につながります。
現時点ではそうです。ただし、すべてのmysql_
関数は非推奨であり、PHP から削除され、サポートされなくなることに注意してください。これは、独自のセキュリティ上の危険性を示しています。
使用を検討してください
mysqli_real_escape_string
より詳しい情報
http://php.net/manual/en/function.mysql-real-escape-string.php
赤いブロックを読み、デフォルトの文字セットに関するセキュリティ コメントに注意してください。両方の機能に適用されます。