概要
悪意をもったユーザがHTMLタグやスクリプトを記入することで
訪問者のwebブラウザで悪意のあるプログラム(ホームページのUI改ざん、クッキー情報の不正利用等)を動作させる攻撃のこと。
典型例
いくつか攻撃手法があり、反射型XSS・格納型XSS・DOMベースXSSなどがある。
1.一般利用者が悪意のあるページやメールにアクセスする。
2.一般利用者が悪意のあるスクリプトを含むURLリンク(http://脆弱性のある正規サイト/xxx?q=<script>悪意のあるスクリプト</script>)を押してしまう。
3.悪意をもったスクリプトが実行されてしまい、色々な攻撃被害にあってしまう。
例:
・セッションハイジャック(悪意のあるユーザに、document.cookie等に存在するセッション情報を伝達してしまう)
・ページ偽造、フィッシング(本物に見せかけた罠サイトに誘導され、パスワードが盗まれる)
・etc...
1.悪意のあるユーザが脆弱性のあるWebサイトのデータベース等に悪意のあるスクリプトを埋め込む、
2.一般利用者が脆弱性のある正規サイトにアクセスする。
3.データベース等に入っていた悪意のあるスクリプトが実行されてしまう。
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