XSSの対処法

XSSの脆弱性からアプリケーション利用者を守るためには、Webブラウザが認識するHTMLタグ構成文字をHTMLエンティティズに変換しなければなりません。
この処理のことを「HTMLエスケープ処理」と言います。
これらの文字列に対してすべてエスケープ処理を行うには労力がかかりますが、 PHP が用意している「htmlspecialchars 関数」をかけることにより、簡単にエスケープ処理が可能です。

XSS の完全な対策として、変数が安全だとわかっていても、出力するすべての変数にこの処理を行わなければなりません。
これはプログラマとしては非常に面倒な処理となります。
ここで Smarty の 「escape 修飾子」を利用します。「$bodylescape」とすると、「htmlspecialchars($body,ENT_QUOTES);」と同様の処置を行ってから出力を行ってくれるのです。
出力するすべてのSmarty変数にescape修飾子を記述するのは面倒ですが、この措置を忘れるといつでもXSSの危険性にさらされますので気を付けましょう。

Leave a Reply

Your email address will not be published. Required fields are marked *