ホームページ  >  記事  >  php教程  >  PHPコードの単純化が不十分

PHPコードの単純化が不十分

WBOY
WBOYオリジナル
2016-06-13 12:19:16891ブラウズ

コードをコピー コードは次のとおりです:


<
echo("

クエリの検索結果: ").
$_GET['query'].".

";
?>


このコードの主な問題は、データが表示されることです。ユーザーが Web ページに直接送信すると、XSS 脆弱性が発生します。実はこの穴を埋める方法はたくさんあります。では、どのようなコードが必要なのでしょうか?

コードをコピー コードは次のとおりです:



echo("

検索結果クエリの場合: ").
htmlspecialchars($_GET['query']).".

";
?>



これは最低要件。 XSS の脆弱性は htmlspecialchars 関数によって埋められ、不正な文字がブロックされました。

コードをコピー コードは次のとおりです:


if(isset($_GET['クエリ'] ))
echo'

クエリの検索結果:',
htmlspecialchars($_GET['query'],ENT_QUOTES).'.

'; >

私が採用したいのは、このようなコードを書ける人材であるはずです:
**$_GET['query'] の値が空かどうかを出力前に確認してください。
*echo コマンド内の冗長な括弧は削除されました。
* 文字列は一重引用符で修飾されるため、文字列から置換可能な変数を検索する PHP の時間が節約されます。
* エコー時間を節約するには、ピリオドの代わりにカンマを使用します。
* ENT_QUOTES フラグを htmlspecialchars 関数に渡して、一重引用符もエスケープされるようにします。これは最も重要なことではありませんが、良い習慣でもあります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。