1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

クロスサイトスクリプティング(XSS) 概要

Posted at
  • クロスサイトスクリプティング(XSS)の概要情報をまとめる。

XSSとは

  • ユーザーのアクセス時に表示内容が生成される動的なWebページの脆弱性、もしくはその脆弱性を利用した攻撃手法を指す。
    • 動的なWebページが表示内容生成処理を行う際、Webページに悪意のあるスクリプトが仕掛けられ、Webサイトを閲覧したユーザ環境で紛れ込んだスクリプトが実行される。

XSS発生の流れ

XSS_image.png

悪意のあるスクリプトがもたらす被害

  • Cookie情報の抜き取り

    • Cookieに含まれているセッション ID を抜き出し、利用者になりすますことで、個人情報を取得する(セッションハイジャック攻撃)。
  • Webページの改竄

    • 改竄例
      • ユーザーが入力するフォームの送信先を別の URL に書き換え、入力内容を別のサイトに送信させる。
      • 無関係なコンテンツを埋め込み、本物と違和感のないデザインに仕立てることで、ユーザーをフィッシングサイト(罠サイト、不正サイト)へ誘導する。

など

XSSへの注意が必要なWebアプリの特徴

  • 基本はすべてのWebアプリで注意が必要になる。
  • Cookieを利用してログインセッション管理を行う、フィッシング詐欺の攻撃ターゲットになりやすいページ(ログイン画面、個人情報の入力画面等)を持つようなアプリは、特に注意が必要になる。
  • ユーザーの入力した文字列を Web ページ内に表示する部分で、入力内容のエスケープ/バリデーション処理を適切に行っていない実装をしている場合、非常に危険である。

対応手段

画面表示において

  • エスケープ(サニタイズ、サニタイジング)処理を行う。
    • 特殊記号を純粋な文字列として扱う。
  • 特定文字列のみ表示を許容する。
    • 「http://」や 「https://」で始まるURLのみを表示する、など。

入力内容に対して

  • 入力内容に対してバリデーション処理を行う。
    • 特殊記号などをなるべく許容しないようにする。
  • 入力されたHTMLテキストから、スクリプトに該当する文字列を排除する。

など

参考情報

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?