WAF(Web Application Framework)というものがあります。
詳しくは以下を見てみてください。
http://www.weblio.jp/content/WAF
http://www.jp-secure.com/cont/tech/tf131201.html
http://www.websec-room.com/waf
要はWebアプリケーションに対するセキュリティになります。
ファイアーウォールやウィルスチェックなどはサーバー側のセキュリティですが
そのサーバーに載っているWebアプリケーションに対しておかしなリクエスト等があれば
それを拒否してくれたりするものでセキュリティーの1つです。
Webアプリケーション側でXSS対策に漏れがあったりした場合でもWAFの方で防いでくれるというようなものです。
※もちろん過信は禁物ですしあくまで一例です
WAFのインストールや設定などは詳しい情報はGoogle先生に聞けば山ほど出てくるのでそちらに譲るとして、実際に何をやるとどうなるのか?というのを実例を紹介したいと思います。
<p class="selector03">入力フォームにjavascriptを入れる</p>
javascriptというのはCookieを見ることが出来たりするので、意図しない場所に入れられると困る場合があります。
たとえば会員サイトなどの自己紹介のところに入れられたりすると困ります。
こんにちわ
<script>alert('test')</script>
はじめたばかりですが宜しくおねがいします。
こんな感じです。
これがこのまま登録されて、相手が自己紹介を開くとtestと書かれたポップアップが表示されることになります。
これはポップアップが出るだけですが、悪意あるものが埋め込まれると、自己紹介を見た人すべてに影響が出てきます。
もちろんこういうものは事前にXSS対策としてエスケープされるべきですが、
(こんな感じで htmlspecialchars($val, ENT_QUOTES, 'UTF-8'); )意図しない場所から投稿されたりチェック部分を迂回して登録されたりなどされると非常に困ります。
しかしWAFが導入されているサーバーにこういった潜在的な危険を伴った内容が投稿された場合には、事前にチェックをして危ないものであれば別の処理を行ったり弾いたりします。
よくあるパターンとしてはこういった内容がリクエストされた場合にはhttpエラー403を返すケースがあります。
レンタルサーバーなどで気づかずに403が出ることがあって調べるとWAFが出していたということがあります。
むしろなぜ403になるのかわからずに解決に時間を費やしたレンタルサーバーもあったのは今となってはいい思い出です。
またこういった処理を許容したい場合でもエスケープする前にWAF側で弾かれてしまうことがあるのでWAFの運用と設定は慎重に行わなければなりませんし、403エラーになったときの処理も行っておく必要があります。(.htaccessなどでErrorDocumentを設定しておくとか処理の引継ぎとか)
レンタルサーバーなどでは細かい設定が出来ないことが多いですがセキュリティーを向上させる手段としては大変有用かと思いますので導入しておいて損はないと思います。
セキュリティー