4

いつ mysql_real_escape_string を使用する必要がありますか?

データベースに行を挿入するときだけですか? または、ユーザー入力がある場合のみですか?

ありがとう

4

4 に答える 4

2

データベースに対して実行されるクエリを作成するときは常に mysql_real_escape_string() を使用する必要があります。データベース クエリの作成に使用されるユーザー入力はすべて、この関数を介して実行する必要があります。これにより、SQL インジェクション攻撃を防ぐことができます。

これに関しては、ユーザー入力が大きな関心事です。

于 2011-03-11T20:40:51.050 に答える
2

文字列の値を 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を使用することも検討する必要があります。これにより、エラーのリスクが軽減されます。

于 2011-03-11T20:46:01.167 に答える
0

常に、整数を除いて、そこで使用しますintval()

于 2011-03-11T20:39:51.280 に答える