情報セキュリティ講座(98) クロスサイトスクリプティング②

クロスサイトスクリプティングによる被害は、ユーザが脆弱性のあるWebサイトに文字列を入力する際に、スクリプトが実行されてしまうことから、発生します。従い、ユーザが文字列を入力しても、スクリプトが実行されないようにすることが、対策となります。

1. エスケープ処理

テキスト入力欄にHTMLタグ等(<br>とか)の入力をする必要なケースは、ほとんどありません。
従い、HTMLタグの入力をしても、無効とすることが有効です。
その一つが、HTMLタグが入力された場合に行うエスケープ処理です。

< ⇒ &lt
> ⇒ &gt
& ⇒ &amp

といった感じです。

2. <script></script>要素を、動的に生成しない
script要素を動的に生成してしまうと、思わぬスクリプトを動かすことが懸念されます。表示の際に、<script></script>要素を自動生成しないことが、対策となります。

3. スタイルシートの取り込みをしない
スタイルシートを勝手に読み込むと、思わぬ動作をする危険があります。

4. スクリプトに該当する文字列を排除する
入力された文字列から、スクリプトに該当する文字列があった場合は、排除することが対策となります。

5. HTTPレスポンスヘッダのContent-Typeフィールドにcharsetを指定する
Content-Typeのフィールドを省略すると、ブラウザは独自の方法で文字コードを推定します。攻撃者がこの性質を悪用すると、悪意ある文字コードを読み込ませる余地がでてしまいます。

投稿者プロフィール

小笠原 裕
小笠原 裕中小企業診断士 行政書士
バラの咲く街、八千代市緑が丘で、コンサルティング事務所を運営しています。