リクエストヘッダーからユーザーエージェント情報を削除する方法
Apacheを使って、特定のページに対してリクエストがあった際に、リクエストヘッダー内の特定のヘッダー情報(例えばユーザーエージェント情報)を削除するには次のように「mod_headers」モジュールを使います。
mod_headersでユーザーエージェント情報を削除する
事前にApacheでユーザーエージェント情報を削除しておくと、PHP等のスクリプト側でヘッダーを受け取る際に、編集された情報を渡すことができます。
記述する設定ファイルは、httpd.conf系でも「.htaccess」系でもどちらでも構いません。
<ifModule mod_headers.c> RequestHeader unset User-Agent </ifModule>
もし、特定のページやファイルにのみ適用させたい場合は、さらに「<FilesMatch>」ディレクティブ等で括ってやると良いでしょう。
結果を見てみる
これで変更前と変更後で次のようにログの記録のされ方が変わります。
変更前 | “GET /sample.php HTTP/1.1” 200 1285 “-” “Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0” |
---|---|
変更後 | “GET /sample.php HTTP/1.1” 200 1221 “-” “-“ |
見事にUser-Agentの情報がなくなっていることが分かりますね! もちろん、PHP等のプログラムからは「$_SERVER[“HTTP_USER_AGENT”]」が削除されています。
mod_headersモジュールを使うと、リクエストヘッダーだけでなく、応答ヘッダーについても新たに独自のヘッダーを追加したり、既存のヘッダーの値を書き換えたり、今回のように削除したりと様々なことができるようになるので、ぜひ覚えておきたいモジュールですね。
2013-08-20