コードをコピー コードは次のとおりです:
<
echo("
クエリの検索結果: ").
$_GET['query'].".
";
?>
このコードの主な問題は、データが表示されることです。ユーザーが Web ページに直接送信すると、XSS 脆弱性が発生します。実はこの穴を埋める方法はたくさんあります。では、どのようなコードが必要なのでしょうか?
コードをコピー コードは次のとおりです:
echo("
検索結果クエリの場合: ").
htmlspecialchars($_GET['query']).".
";
?>
これは最低要件。 XSS の脆弱性は htmlspecialchars 関数によって埋められ、不正な文字がブロックされました。
コードをコピー コードは次のとおりです:
if(isset($_GET['クエリ'] ))
echo'
クエリの検索結果:',
htmlspecialchars($_GET['query'],ENT_QUOTES).'.
'; >
私が採用したいのは、このようなコードを書ける人材であるはずです:
* は、XML 仕様により準拠した *$_GET['query'] の値が空かどうかを出力前に確認してください。
*echo コマンド内の冗長な括弧は削除されました。
* 文字列は一重引用符で修飾されるため、文字列から置換可能な変数を検索する PHP の時間が節約されます。
* エコー時間を節約するには、ピリオドの代わりにカンマを使用します。
* ENT_QUOTES フラグを htmlspecialchars 関数に渡して、一重引用符もエスケープされるようにします。これは最も重要なことではありませんが、良い習慣でもあります。