fc2ブログ

クロスサイトスクリプティングとは?XSS対策は奥が深い

Posted by html5_newbie on 17.2011 PHP 0 comments 0 trackback
久々にプログラムの話。

クロスサイトスクリプティング(XSS)とは、なんぞ?

PHP初心者やデザイナーさんだと思うかもしれません。

・クロスサイトスクリプティングとは?

XSSとは、WEBシステムを攻撃する手法の一つです。WEB制作者は、この対策をする必要があるとされています。


・具体的にどんなWEBシステムでこの問題が発生するか


入力フォームに値をいれて、確認画面で入力した内容を確認するようなシステムが主です(他のケースもあります)。


・どんな対策をすればいいか

入力値のチェック(バリデート)
不正な入力値の無効化(サニタイズ)

基本この2つです。

PHPだとhtmlspecialcharsという「htmlタグ」、「&」、「"(ダブルクォート)」、「'(シングルクォート、オプション要)」を「>」などに置き換える関数があります。ユーザーが入力した内容を確認画面で表示する際は、基本この関数を使って表示します。

あと、hiddenのvalueに値を入れる場合、

echo '<input type="hidden" name="hoge" value="'.htmlspecialchars($value).'" />

というように、ダブルクォートで括るようにしましょう。

これで、概ね防ぐことができます。
最近のシステムでは、cssを入れられたり、javascript(ajax)を利用するようなシステムも多いので、この辺りもXSS対策が必要です。


・どんな被害をうける可能性があるか


cookieと呼ばれる個人のWEBブラウザ(internet explorer等)の情報が盗まれたりします。(他の被害をうけることもあります)

・誰が被害をうけるか

サイト制作者ではなく、サイト利用者が直接被害をうけます。サイト制作者も間接的に被害をうけます。


・XSS対策は必要か

必要と言えば必要でしょう。ただ、攻撃者は、XSSなんかより、もっと効率がいい攻撃方法を取るでしょうから、あまりXSSは狙われないかもしれません。


WEBシステムを作る際は、XSSだけでなくいろんなセキュリティー対策が必要です。

例えば、

バッファオーバーフロー
インジェクション
パストラバーザル
セッション乗っ取り
クロスサイトリクエストフォージュリ
クロスサイトトレーシング
画面遷移の正当性

などです。共通処理でできる対策はできるだけ共通で処理を行うのが安全なWEBサイト制作の基本となるでしょう。

▶ Comment

▶ Post comment


  • 管理者にだけ表示を許可する

▶ Trackback

trackbackURL:http://html5.blog20.fc2.com/tb.php/180-8f1a0d7f