ホワイトリスト方式[XSS][preg_match][htmlspecialchars]

2016年2月5日

PHP

入力された値をチェックするために、あらかじめ受付可能な文字などを指定しておく方式です。不正なパターンを防ぐ「ブラックリスト」よりもチェックは厳しくなります。

 

 

4行目

$whitelistに、あらかじめ入力可能なホワイトリストを配列で用意しています。

 

 

スポンサーリンク

 

 

クロスサイトスクリプティング(XSS)対策


 

htmlspecialchars関数はHTMLテキスト用のエスケープ関数なので万全ではありません。例えば、 入力された値を、<a href=”◯◯◯”>sample</a>の◯◯◯のようなタグの中で出力する場合は、htmlspecialcharsだけでは対処できません。

 

試しに javascript:alert(‘Test’) という文字列が入力された場合を想定して、下記のコードのようにa hrefの属性に出力させてみます。$xssはhtmlspecialchars関数を通していますが、ブラウザで表示させるとアラートが表示されてしまいます。

 

 

デモ画面

 

このような場合は、入力時に正規表現でjavascriptが入っていないかをチェックしたり、「http://」や「https://」で始まる文字列のみを出力するなどのホワイトリスト方式によるチェックが必要となります。

 

ホワイトリスト方式によるチェック

 

関連ページ

クロスサイトスクリプティング(XSS)[htmlspecialchars]

 

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー