Security

XSS Auditor が有効になっているかチェックするためのページを作りました

投稿日:2019年4月12日 更新日:

1. XSS とは?

XSS (Cross-site Scripting) とは、Webサイト上で行われる攻撃の1つです。

いろいろな種類があるのですが、単純な例をあげると以下のシナリオで任意の JavaScriptコードを実行させる攻撃が XSS です。

  1. 掲示板サイトがあるとします。
  2. 投稿欄に JavaScriptコードを入力して投稿します。
  3. 投稿した内容は Webページ上に表示されますが、HTML として出力される中に JavaScriptコードが含まれていると、そのままこのコードが実行されてしまいます(本来は適切なエスケープ処理が必要です)。

Webサイトによって違いますが、JavaScript を使うと個人情報やそれに紐づく情報を別のサーバーに送信することも可能であるため、とても危険です。

2. XSS を防ぐためのブラウザの機能「XSS Auditor」

Chrome や Safari といったWebブラウザには、XSS を検知する機能が実装されています。検知された JavaScriptコードは実行されません。この機能のことを XSS Auditor と呼ぶようです。

Chrome 78 (2019年8月) で XSS Auditor は削除されました。
参考:XSS Auditor – The Chromium Projects

3. Webブラウザの XSS Auditor 機能が有効かどうか調べる

今回、Webブラウザの XSS Auditor 機能が有効になっているかどうかをチェックするための Webページを作りました。

チェック方法は、[Check XSS Auditor enabled] というボタンを押すだけです。

XSS が検知された場合は、その旨が表示されます。一方、検知されない場合はポップアップウィンドウが開き「1」が表示されます(XSS Auditor が実装されていない場合も当然検知されません)。

また、“Disable XSS Auditor” にチェックを入れると、Webサーバーはこの機能を無効にするためのレスポンスヘッダ(X-XSS-Protection:0)をセットして返すため、XSS Auditor 機能を持ったブラウザでも検知が行われなくなります。

詳しくはリンク先を参照してください。

4. 参考

📂-Security

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Web Security

PHPの各PDOドライバは、静的プレースホルダ/動的プレースホルダのどちらを使用しているのか?

目次今のところの結論MySQL (PDO_MYSQL)の場合その他のデータベース用ドライバ参考 今のところの結論 データベースにも依るだろうが、そもそもプリペアドステートメントが使えないSQL文法があ …

Web Security

JVN iPediaに載っていた脆弱性を調査する

JVN iPedia という脆弱性対策情報データベースの Webサイトがあるのですが、そこに載っていた JVNDB-2016-005868 という脆弱性情報について調査する過程を紹介します。 調査 ま …

PHP

Laravel 5 でのセキュリティ対策 (PHP)

目次1. ユーザーによる入力値の検証入力パラメータ値のエンコーディングが正しいことをチェックするMiddlewareの例制御文字を禁止するバリデーションルールを追加する例1. バリデーション用のクラス …

Web

openssl s_client コマンドでウェブサーバーの SSL/TLS 対応状況を診断する

openssl s_client コマンドを使い、ウェブサーバーのSSL/TLS対応状況を診断します。 目次1. OpenSSL について2. openssl s_client コマンドについて以降の …

no image

バッファオーバーフロー by IPA「安全なウェブサイトの作り方 第7版」

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「バッファオーバーフロー 」から一部抜粋する。(この資料はPDFでしか提供されていない) 目次注意が必要なウェブサイトの特 …