0

私はSQLインジェクションからセキュリティを防ぐための簡単な関数を作成しました、そしてここにXXSが私のコードです、これについて何か提案はありますか?これはセキュリティに十分ですか?

function mres($input){
    if(get_magic_quotes_gpc()){
        $input=stripslashes($input);    
    }
    $input=htmlentities($input, ENT_COMPAT, 'UTF-8');
    return mysql_real_escape_string($input);
}
4

2 に答える 2

2

これは少なくとも2つの点で間違っています。

  1. magic_quotesできれば完全にオフにします。少なくともあなたはそれを使用してい$inputませんが、スカラーではないかもしれません
  2. htmlentities表示用であり、ストレージ用ではありません。ストレージ用にエンコードしないでください!
  3. mysql_*関数は非推奨になりました。呼び出したときにmysql接続が開いている(必須)という保証はありません。

http://us3.php.net/manual/en/function.mysql-real-escape-string.php

于 2013-01-24T06:40:26.633 に答える
0

あなたが実際に何をしているのか見てください:

マジッククォートは、すべての受信データの一括エスケープであり、エスケープだけではデータが「安全」になるわけではないため、脆弱になります。

だから、あなたはこれらのバルクエスケープを掃除しています...そして同じエスケープをもう一度適用します:)

于 2013-01-24T07:12:20.970 に答える