Today 'tunepolo' Leaned

スクリプトインジェクション / クロスサイトスクリプティング(XSS)

概要

サイトにスクリプトを含むリクエストを送信し、サイトを訪れた第三者に悪意のあるコードを実行させる脆弱性の総称。

攻撃対象のサイトだけでなく、別サイトへのリダイレクトなど複数サイトを横断させてスクリプトを実行させることもできることからクロスサイトスクリプティング(XSS)とも呼ばれる。

名前説明
持続型攻撃者がスクリプトを含むリクエストを送信してサーバーに保存させる。保存されたスクリプトを組み込んだページを訪れた第三者にスクリプトを実行させる。
反射型第三者にスクリプトを含むリクエストを送信させる。送信したスクリプトがページ内に差し込まれる脆弱性を利用して、リクエストを送信したページ上でスクリプトを実行させる送信したスクリプトはサーバーに保存されない。
DOMベース第三者にスクリプトを含むリクエストを送信させ、クライアントサイドスクリプトの脆弱性を利用する。

対応方法

  • 出力時にエスケープを行って攻撃コードを無効化する。
  • 厳密に値を入力検査する
  • インラインスクリプトにユーザーの入力を展開しない。
  • 文字コードを指定する
    • レスポンスヘッダーに適切な文字コードを指定しないと、文字化けを利用してスクリプトを混入させる隙を与えるため。

参考

Last updated on 5 May 2020
Edit on GitHub