さて、WEBサイト構築には欠かせないセキュリティのテストですが、
今回は「クロスサイトスクリプティング」についてお話しましょう。

そもそも「クロスサイトスクリプティング」とはどのようなセキュリティホールなのでしょう。

【言葉】 クロスサイトスクリプティング(XSS)とは、悪意のあるHTMLやJavaScriptなどのスクリプトが埋め込まれてしまうセキュリティホールの事です。

【どうなる】 悪意のあるスクリプトが埋め込まれた場合、サイト利用者のCookie情報や入力情報が盗まれる事もあります。
さらに盗まれた認証情報が不正利用され、金銭的被害等の可能性もあります。

【対策】
スクリプトはサイトの入力フォームやパラメタなど(※)から埋めこまれます。
スクリプトを埋め込む必要性のない箇所は、スクリプトの登録自体や受け渡しを禁止する、また表示する際にタグを無効かして表示するなどの対策が必要です。

※例えば、「http://test.com/list?name=<a href=’http://attack’>attack</a>」 など

 

【テスト方法】☆テスト方法はあくまでも例です。機能などにあったテストを実施してください。
(CASE1)
1.URLのパラメターに、スクリプトを指定してアクセスする。
2.スクリプトが無効化されているか確認する。

(CASE2)
1.入力フォームの入力欄に、スクリプトを入力して処理(登録など)をしてみる。
2.入力した内容を表示させるページに遷移し、スクリプトが無効化されているか確認する。
(入力内容がスクリプトとして動作する(※2)ようであれば、NGですね。)

※2例えば、
<a href=’http://attack’>attack</a>と登録する。これを表示する箇所で、attackとリンクが表示される。これはNGです。

(注意)
サイトによっては、入力はOKだが、表示自に無効化している場合もあれば、入力自体を禁止している場合、機能的にHTMLを入力OKにしている場合もある。何が不具合に当たるかはサイトのポリシーを確認する必要がある。。