[mod_rewrite] URLにヌル文字が混ざると書き換えに失敗する
- 2008-09-13
- カテゴリ: Server Side
- タグ: Apache mod_rewrite
たまたま見つけたのでメモ。
mod_rewriteを使ってるサイトにアクセスするときに、
http://example.com/%00
みたいな感じにヌル文字をURLに含めると、なぜか404 Not Foundが返ってきてしまう。ネットで検索しても全然情報が見つからないんだけど、これって常識だったりするのかな?
再現方法
↓のようなindex.txtと.htaccessをサーバーの適当なディレクトリに置く。
- index.txt
helloworld
- .htaccess
RewriteEngine on RewriteRule .* index.txt
このように設定すれば、どのようなURLでこのディレクトリにアクセスしても、単にhelloworldと出力されるだけなはずで、実際にその通りになる。でも、URLに%00を含めると↓の画面。
WinXP + XAMPPで走っているローカル環境でもこの現象は起きたし、XREA.COMのサーバーでも起きた。
なんなんだろう、これ。null文字で挙動が変わると、インジェクション攻撃されるんじゃないかと若干不安になるんだが。
スポンサーサイト
[PHP][mod_rewrite]ユーザーエージェントでPCとケータイを判別
- 2007-11-04
- カテゴリ: Server Side
- タグ: Tips ケータイ mod_rewrite apache PHP Perl 正規表現
HTTP_USER_AGENTの文字列を判断して、PCからのアクセスなのかケータイからのアクセスなのかを判別するというのは、広く使われているテクニック。
例えばDoCoMoのケータイならば、ユーザーエージェントの先頭に必ずDoCoMoの文字列が入ることになっているから、それを見てドコモのケータイだと判断すればよい。
先ほど、各キャリアのユーザーエージェントを調べたのでメモ。