2

SQL インジェクションやその他のリスクから Web サイトを保護したかったので、変数ごとに次のようなものを追加して、すべての SQL クエリを変更しました。

 $getLid = htmlspecialchars($_GET[lid], ENT_QUOTES);

私の50個のファイルの場合...しかし、それが私の間違いである可能性があることがわかりました。「入力」にmysql_real_escape_stringを追加する必要がありました...

mysql_real_escape_stringこの場合でも使用する方が良いですか、それともENT_QUOTES機能しますか? もう一度再起動して、mysql_real_escape_string代わりに追加する必要がありますhtmlspecialchars(..., ENT_QUOTES);か?

編集 :

そういう意味ですか?

$getLid = escape_string($str);

function escape_string($str){
    return mysql_real_escape_string($str);
}

編集 n°2 : return ステートメントが正しく機能しません。理由はわかりますか?

警告: mysql_real_escape_string() [function.mysql-real-escape-string]: サーバーへのリンクを … www/escape_file.php で確立できませんでした

ユーザーのアクセスが拒否されました… www/escape_file.php

ありがとう

4

1 に答える 1

1

ユーザー入力を保護するためのリファレンスはたくさんあります。Googleで検索できますが、「escape.php」などの別のphpファイルにクラスまたは関数を記述してから、そのファイルを50個のファイルすべてに含める必要があると思います。それを使って逃げる。例:

include 'escape.php';
$str = escape_string($str);

したがって、単一のファイルを変更するだけで、エスケープ関数を簡単に変更できます。お役に立てば幸いです。

于 2012-07-31T19:31:29.623 に答える