トップページ > コンテンツ > ネットワーク関連メモ > ネットワーク運用編 > セキュリティ関連 > クロスサイトスクリプティング

概要

悪意をもったユーザがHTMLタグやスクリプトを記入することで
訪問者のwebブラウザで悪意のあるプログラム(ホームページのUI改ざん、クッキー情報の不正利用等)を動作させる攻撃のこと。

典型例

いくつか攻撃手法があり、反射型XSS・格納型XSS・DOMベースXSSなどがある。

  • 反射型XSSの例は以下の通り。
1.一般利用者が悪意のあるページやメールにアクセスする。
2.一般利用者が悪意のあるスクリプトを含むURLリンク(http://脆弱性のある正規サイト/xxx?q=<script>悪意のあるスクリプト</script>)を押してしまう。
3.悪意をもったスクリプトが実行されてしまい、色々な攻撃被害にあってしまう。
 例:
 ・セッションハイジャック(悪意のあるユーザに、document.cookie等に存在するセッション情報を伝達してしまう)
 ・ページ偽造、フィッシング(本物に見せかけた罠サイトに誘導され、パスワードが盗まれる)
 ・etc...

  • 格納型XSSの例は以下の通り。
1.悪意のあるユーザが脆弱性のあるWebサイトのデータベース等に悪意のあるスクリプトを埋め込む、
2.一般利用者が脆弱性のある正規サイトにアクセスする。
3.データベース等に入っていた悪意のあるスクリプトが実行されてしまう。

  • DOMベースXSSの例は以下の通り。
1.一般利用者が悪意のあるページやメールにアクセスする。
2.一般利用者が悪意のあるスクリプトを含むURLリンク(http://脆弱性のある正規サイト/#<script>スクリプト</script>)
3.正規サイトが動的にWebページを生成する際に、悪意をもったスクリプトを含んだページを返してしまう。
4.悪意のあるスクリプトが実行されてしまう。

対策例

この対策に関しては、以下のような方法が考えられる。

1.スクリプト実行ができないようにする。
 →タグやスクリプトを入れられないように、入力データや出力データのサニタイジングを行う。
2.スクリプトからcookieを読み出せないようにする。
 →cookieにSecure属性(httpsの時のみcookieを送信)と
  HttpOnly属性(javascript等からcookieを読み出せなくする)を付ける。
3.パラメータがURLに含まれるGETメソッドは使用せず、POSTメソッドを使う。
4.WAF等のセキュリティ製品を導入する。

※上記はWebページ管理者目線での対策(脆弱性のあるサイトを作成しないようにする)です。
 一般利用者としては、怪しいメールやURLを開かないことを意識しましょう。
最終更新:2021年10月14日 09:25