いつ mysql_real_escape_string を使用する必要がありますか?
データベースに行を挿入するときだけですか? または、ユーザー入力がある場合のみですか?
ありがとう
いつ mysql_real_escape_string を使用する必要がありますか?
データベースに行を挿入するときだけですか? または、ユーザー入力がある場合のみですか?
ありがとう
データベースに対して実行されるクエリを作成するときは常に mysql_real_escape_string() を使用する必要があります。データベース クエリの作成に使用されるユーザー入力はすべて、この関数を介して実行する必要があります。これにより、SQL インジェクション攻撃を防ぐことができます。
これに関しては、ユーザー入力が大きな関心事です。
文字列の値を SQL ステートメントに挿入し、MySQL API を使用している場合は、mysql_real_escape_string を使用する必要があります。
$sql = "SELECT * FROM student WHERE foo = '" . $foo . "'";
次のようにする必要があります。
$sql = "SELECT * FROM student WHERE foo = '" .
mysql_real_escape_string($foo) . "'";
ただし、の代わりに、準備済みステートメントとバインド パラメータでPDOmysql_real_escape_string
を使用することも検討する必要があります。これにより、エラーのリスクが軽減されます。
常に、整数を除いて、そこで使用しますintval()