クロスサイトスクリプティング対策としてやっておくべきこと
クロスサイトスクリプティング(以下、XSS)とはセキュリティホールの一つで、お問合せフォームなどユーザーの入力をそのまま画面に表示するプログラムが、悪意のあるコードを訪問者のブラウザに送ってしまう脆弱性のことです。
例)お問合せフォームの場合
入力画面で下記のようなHTML特殊文字を入力して確認画面へ遷移します。
確認画面では、このように打消し線になって表示されます。
これは、XSSの問題が存在する可能性があります。
XSS脆弱性があるスクリプトの例を挙げてみましょう。
<input type="hidden" name="name" value="<?php echo $_POST[name]; ?>" />
POSTやGETで送られたデータをそのまま表示してるスクリプトです。
実は、PHPで最初に覚えるようなスクリプトがXSS脆弱性を含んでいるのです。
先ほどのコードからXSS脆弱性を取り除いたコードです。
<input type="hidden" name="name" value="<?php echo htmlspecialchars($_POST[])>" />
POSTやGETで送られたデータをそのまま表示せず、htmlspecialcharsを一度通してから表示します。
これでXSS脆弱性はなくなります。
【htmlspecialchars関数でHTML特殊文字を変換】
HTML特殊文字を探しHTMLエンティティに変換する関数です。具体的には次のように変換します。
htmlspecialchars関数によるHTML特殊文字の変換が、XSS対策の基本的な対策のひとつです。
この方法は「汚染を除去」を意味するサニタイズ(無害化)と呼ばれています。
おわりに…
いかがでしたか?簡単に対策ができるので、みなさんも必ず使いましょう!!
RSSリーダーで購読する