クロスサイトスクリプティング(XSS)のテスト方法

2021年6月25日

Webサイトを作成する場合はセキュリティに注意して画面を作成することが重要ですが、セキュリティとして大事なことの1つにクロスサイトスクリプティング(XSS)があります。

対策するには各種プログラミング言語やフレームワークなどによって様々ですが、ここでは、クロスサイトスクリプティング(XSS)の対策が問題なくされているかをテストするための方法を紹介します。

クロスサイトスクリプティング(XSS)のテスト手順

作成したWebサイトにて画面を表示して、テキストボックスに以下を入力します。

"></script><script>alert(0)</script>

上記を入力した状態で、画面をsubmitして、アラートダイアログが表示されなければOKです。
クロスサイトスクリプティング(XSS)の対策がされてない場合は、アラートダイアログが表示されます。

クロスサイトスクリプティング(XSS)のテストの仕組み

クロスサイトスクリプティング(XSS)のテストの仕組みは、以下の通りです。
通常、画面を表示してHTMLが生成されると、テキストボックスは以下の形式になります。

<input type="text" value="xxx">

ところが、前述した文字列を入力すると、inputタグが以下のようになります。

<input type="text" value=""></script><script>alert(0)</script>">

上記のようにHTMLが生成されると、scriptタグが有効になるため、アラートダイアログが表示されるという仕組みです。

普段、フレームワークを使っていると、こういうのを意識せずともできたりしますが、フレームワークを「使える」ようになるのではなく、フレームワーク自体を「作れる」「カスタマイズ」できるってのが大事だと思います。
以下のスクールのように、フレームワークは一切使わず、ピュアPHPでMVCのプログラムを組んで勉強できる場もあるので、ぜひこういう本質を学んでみてください。

転職のためのプログラミングスクール【無料PHPスクール】