リスティング広告 運用代行サービス|株式会社カルテットコミュニケーションズ|Yahoo広告/Google広告正規代理店

【PHP】XSS(クロスサイトスクリプティング)とは

公開日:
更新日:

Webアプリケーションに対する攻撃の手法には色々なものがありますが、中でも有名なものにクロスサイトスクリプティング(「XSS」と略します)があります。

XSS(クロスサイトスクリプティング)とは

XSSは、あるサイトから別のサイトにスクリプトを送り込み、悪意あるスクリプトを、そうとは知らない訪問者に実行させます。このため、「クロスサイト(サイト横断的な)スクリプティング(スクリプト処理)」と呼ばれます。

この説明ではよく分からないかも知れませんが、実質的には、「PHPなどで、ユーザがフォームに入力した文字列を出力するときに、適切にエスケープしないと、スクリプトのコードがそのまま出力されて実行されてしまいますよ」ということです。

簡単な例

例えば、以下のようなPHPコードがあったとします。

<a href="/search.php?q=<?php echo $keyword; ?>">検索</a>

この場合、変数 $keyword の中身が「test」だったら、出力されるHTMLコードは以下のようになります。

<a href="/search.php?q=test">検索</a>

このコードには何ら問題ないですね。

しかし、変数 $keyword の中身が
“><script>alert(‘attack!’);</script><a href=”
だったらどうでしょうか。

この場合、出力されるHTMLコードは以下のようになります。

<a href="/search.php?q="><script>alert('attack!');</script><a href="">検索</a>

このコード、ブラウザで表示してみれば分かりますが、

<script>alert('attack!');</script>

このスクリプトのコードが実行されてしまいます。

この変数 $keyword の中身がサイトのフォームから受け取った値だとすると、フォーム経由で悪意あるスクリプトのコードを上記のようにして送られてしまうリスクに対して、対策がされていないと言えるでしょう。

これがXSS脆弱性です。

対策

XSS対策は、至って簡単です。
「ユーザに入力させた値を出力するときは適切にエスケープする」、これだけです。

具体的には、元のこのコードを・・・

<a href="/search.php?q=<?php echo $keyword; ?>">検索</a>

このように修正します。

<a href="/search.php?q=<?php echo htmlspecialchars($keyword); ?>">検索</a>

これでXSS対策は基本的にはOKです。

htmlspecialchars はPHPの組み込み関数で、HTMLにおいて特殊な意味を持つ文字(< とか とか)をHTMLエンティティ(&lt; とか &quot; とか)に変換してくれます。

こうしておくと、出力されるHTMLコードは

<a href="/search.php?q=&quot;&gt;&lt;script&gt;
alert(&apos;attack!&apos;);&lt;/script&gt;&lt;a href=&quot;">検索</a>

となり、スクリプトのコードは無効化されているため、安全です。

まとめ

XSSは非常に有名な攻撃手法ですが、それでも多くのWebアプリケーション(動的なWebサイト)が対策をしていないのが現状です。

たったこれだけの対策でも、しているのとしていないのでは安全性が全く違ってきますので、Webアプリケーションを公開する場合は、手を抜かずにしっかりセキュリティホールを埋めるように気をつけましょう。

1営業日以内に返信いたします 広告の運用代行についてのお問い合わせはこちら
シェアする

ブログ記事の中で広告運用の事例をご紹介することがありますが、実際の事例を一部加工した内容となっておりますのでご留意ください。

また、2018年7月24日よりGoogle AdWordsはGoogle広告に名称変更されました。それ以前の記事に関してはGoogle AdWordsと表記されておりますのでご了承ください。


リスティング広告の
情報をお届け

メルマガではリスティング広告に詳しくなれる記事を毎週一週間分まとめてお届けします。不定期にはなりますがリスティング広告に限らず、Web集客改善に繋がる資料もお送りしていきますので、興味のある方はぜひご登録ください。

同じカテゴリの最近の記事