【セキュリティ】XSS(クロスサイトスクリプティング)って何?【わかりそうでわからない】

セキュリティ

みなさんこんにちは、ちょいまけです。
今回は「XSS(クロスサイトスクリプティング)」について説明します。

XSS?何それ?という方、あなたは普通です。

名前だけは聞いたことあるという方、素晴らしいです。

XSSって何か説明できる方、最高です

僕は名前は聞いたことあるし、なんとなく知ってるけど、説明できるかと言われると自信がないという状態でした。はい、これでもエンジニアです。流石に不味いので勉強しました。

という訳でXSSについてご存知ない方、かつての僕のように軽い知識しか持っていない方に向けて、XSSについて解説します。

XSSとは?

XSSとはユーザーがWebページにアクセスすることで不正なスクリプトなどが実行されてしまう攻撃手法または脆弱性のことです。具体的にどういう攻撃なのかを画像を交えて説明します。

例えば、あなたの元に知らないアドレスからメールが届いたとします。中には脆弱性のある掲示板へのリンクが貼られています。

知らないアドレスからメールがきた

そのリンクには悪意のあるスクリプトが含まれており、リンクを踏むと…

悪意のあるリンクを踏むと…

あなたに身に覚えの無い投稿が掲示板に投稿されます。これがXSSによる攻撃の一例です。

謎の投稿がされている

XSSによる被害

Youtube

2010年7月に、Youtubeを狙ったXSSによる攻撃がありました。

サイトを閲覧中にデマのポップアップが表示されたり、他のサイトに飛ばされたり、コメントが表示されないなどの被害が発生しています。原因はYoutubeのコメントのXSS脆弱性が悪用されたことでした。

参照: ITMediaNews「YouTubeにXSS攻撃、不正ポップアップなどの被害広がる」より

XSS対策

考えられるXSS対策をWebアプリを使うユーザー側とアプリを作る開発側から考えます。

ユーザー側

ユーザー側でできる対策は信頼できないリンクは踏まないことです。見知らぬメールから送られたリンク、怪しいサイトからのリンクなどちょっとでも不安に感じるリンクは使用しないようにしましょう。

XSSはユーザーがリンクを踏むことで攻撃が開始されるので、リンクを踏まなければ自分からの被害は起こりません。

開発側

開発側の対策は、外部からの入力値をエスケープすることです。Webページにおける特殊文字(「<」や「&」など)を単なる文字として処理するよう、プログラムを実装しましょう。

さいごに: XSSは厄介

ユーザー側からすると「ちゃんと開発側でXSS対策しろや」って思うのが普通ですし事実その通りなのですが、XSSはその攻撃方法も多岐にわたる手法なので、事前に全てに対処するというのは現実的に困難です。

ユーザーも自分が意図せずサービスに被害を与えたり、その他の被害を食わないよう「怪しいリンクは踏まない」などの基本的な対策は知っておきましょう。

今回は以上です。
最後まで読んでいただきまして、ありがとうございました。

コメント

タイトルとURLをコピーしました