Q.032攻撃の手口

クロスサイトスクリプティング(XSS)とは何ですか?

公開日  運営:サイバー攻撃・情報漏洩の疑問100運営事務局

クロスサイトスクリプティング(XSS)は、Webサイトが入力された文字をそのまま画面に表示してしまう弱点を突き、そのサイトを見た利用者のブラウザで不正なスクリプトを動かす攻撃です。ログイン状態(セッション)を盗まれてなりすまされたり、本物のサイトの中に偽の入力欄を表示されたりします。

XSSで被害を受けるのは、サイトを見た利用者1弱点のあるサイト入力をそのまま表示2不正なスクリプト攻撃者が仕込む3利用者が閲覧ブラウザで実行される4なりすまし・偽の入力欄利用者が被害
XSSで被害を受けるのは、サイトを見た利用者

利用者に起きる被害

  • ログイン状態を盗まれ、アカウントになりすまされる
  • 本物のサイトのURLのまま、偽のログイン欄やカード入力欄が表示される
  • 別のサイトへ勝手に移動させられる

開発側の対策

  • 画面に出す文字は、HTMLとして解釈されないよう必ずエスケープ処理してから表示する
  • URLを出力するときは「http://」「https://」で始まるものだけを許可する
  • CookieにHttpOnly属性を付け、スクリプトから読めないようにする
  • Content Security Policy(CSP)で、読み込めるスクリプトを制限する
  • フレームワークの自動エスケープ機能を無効にしない

利用者ができること:XSSはサイト側の問題なので、利用者が完全に防ぐのは困難です。ブラウザを最新にし、ログイン後に普段と違う入力を求められたら入力しないことが身を守る基本です。

出典:IPA「安全なウェブサイトの作り方」

↑