blob: 0d748d34b1c3348ae80ea365e9a12bcdf5fe7cca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
---
title: Cross-site scripting (クロスサイトスクリプティング)
slug: Glossary/Cross-site_scripting
tags:
- Cross Site Scripting
- DOM
- Glossary
- Security
- XSS
translation_of: Glossary/Cross-site_scripting
---
<p>クロスサイトスクリプティング(XSS)とは、悪意あるクライアントサイドのコードを Web サイトに差し込むセキュリティ攻撃です。差し込まれたコードは被害者のブラウザー上で実行され、アクセス制限の回避やユーザーへのなりすましなどにつながります。Open Web Application Security Project の調べによると、XSS は 2017 年において <a href="https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf">7 番目に多い Web アプリの脆弱性</a> でした。</p>
<p>この攻撃が成功してしまうのは、Web アプリにバリデーションとエンコーディングが十分に実装されていない場合です。ユーザーのブラウザーは、悪意あるスクリプトを信頼できないものとして検知できません。そのため、任意の cookie やセッショントークン、Web サイト固有の機密情報などにアクセスされたり、悪意あるスクリプトによって {{glossary("HTML")}} のコンテンツが書き換えられてしまいます。</p>
<p>クロスサイトスクリプティング攻撃は、1) 信頼できない送信元(ほとんどは Web リクエスト)から Web アプリにデータが入力されるとき、または 2) 悪意あるコンテンツかどうかの検査をせずに動的なコンテンツを Web ユーザーに送信するときに起こります。</p>
<p>往々にして悪意あるコンテンツは {{glossary("JavaScript")}} を含んでいますが、HTML や Flash、ブラウザーで実行可能な他のコードを含んでいる場合もあります。XSS に基づく攻撃手法はほぼ無限に存在しますが、cookie やセッション情報といった秘密の情報を攻撃者に送信したり、攻撃者の用意した Web ページに被害者をリダイレクトさせたり、本来の Web サイト(脆弱性を含む)を装いつつユーザーのマシン上で悪意ある処理を行ったりすることが多いです。</p>
<p>XSS 攻撃の種類は、格納型(持続型)・反射型(非持続型)・DOM-based の 3 つに分類することができます。</p>
<dl>
<dt>格納型 XSS 攻撃</dt>
<dd>差し込まれたスクリプトは、標的のサーバー内に永続的に格納されます。データに対するリクエストをブラウザーが送信し、サーバーから悪意あるスクリプトを受け取ることで被害が発生します。</dd>
<dt>反射型 XSS 攻撃</dt>
<dd>悪意あるリンクをクリックするよう誘導されたユーザーが、特別に細工されたフォームを送信してしまったり、悪意あるサイトを閲覧してしまったりすることで、差し込まれたコードが脆弱な Web サイトへ送信されます。Web サーバーはエラーメッセージや検索結果、リクエストの一部を含んだレスポンスなどによって、そのスクリプトをユーザーのブラウザーへ送信(反射)します。それまでユーザーはその Web サーバーと通信しており、ブラウザーは「信頼できる」サーバーからのレスポンスとみなすため、悪意あるコードがブラウザー上で実行されてしまいます。</dd>
<dt>DOM-based XSS 攻撃</dt>
<dd>クライアントサイドに元々あるスクリプトを利用し、(被害者のブラウザーにおける) DOM 環境を変更した結果、ペイロードが実行されます。すなわち、そのページ自身は変わりませんが、DOM 環境に悪意ある変更を加えたことにより、本来とは異なる方法でクライアントサイドのコードが実行されてしまいます。</dd>
</dl>
<h2 id="Learn_more" name="Learn_more">関連項目</h2>
<h3 id="General_knowledge" name="General_knowledge">一般知識</h3>
<ul>
<li><a href="https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0">クロスサイトスクリプティング</a> (Wikipedia)</li>
<li><a href="https://www.owasp.org/index.php/XSS">Cross-site scripting</a> (OWASP)</li>
<li><a href="http://www.acunetix.com/blog/web-security-zone/articles/dom-xss-explained/">クロスサイトスクリプティングに関する別の記事</a></li>
<li><a href="https://secure.wphackedhelp.com/blog/wordpress-xss-attack/">XSS Attack – Exploit & Protection</a></li>
</ul>
|