:mysqlのimageにmysql_real_escape_string()を使用する必要がありますか?たとえば、
$data = file_get_contents($_FILES['image']['tmp_name']);
$data = mysql_real_escape_string($data);
mysql_query("INSERT INTO table set image='$data'....
これはに固執するための正しい方法ですか?
:mysqlのimageにmysql_real_escape_string()を使用する必要がありますか?たとえば、
$data = file_get_contents($_FILES['image']['tmp_name']);
$data = mysql_real_escape_string($data);
mysql_query("INSERT INTO table set image='$data'....
これはに固執するための正しい方法ですか?
SQLインジェクションを防止するための良い方法として、削除する理由がないかぎり、それを保存することをお勧めします。ここをクリックしてください:http://php.net/manual/en/function.mysql-real-escape-string.php
ユーザーがアップロードする可能性のあるイメージや、クライアントが誤って使用する可能性のあるイメージを通じてSQLインジェクションを実行する可能性があります。
これを使用しない理由は、パフォーマンスになる可能性があります。私はパフォーマンスよりもセキュリティを推奨する傾向があります。
base64_encode
を使用してデータの整合性を保ち、どんな種類の文字にも問題がないことを保証することができます。実際には、データを保持して転送するのは非常に一般的な方法です。そしてそれを戻すにはbase64_decode
を使用してください。
なぜか? :O – Anonymous
エンコーディングタイプ、データタイプ、その他の要因により、データの完全性が失われる可能性があります。 – khael
mysql拡張機能は古くなっており、廃止予定です。新しいコードでは、mysqliまたはPDOを使用する必要があります。どちらも準備済みの文のサポートなどの重要な利点があります。プリペアドステートメントパラメータはSQLインジェクションに対して脆弱ではありません。 – outis