ikepyonのだめ人間日記

セキュリティに関することを書いていく予定。

ディレクトリトラバーサル

ふと思い立って、ディレクトリトラバーサル対策を調べてみた。
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/web05.html
IPAのセキュアプログラミング講座はいわゆる「サニタイズ」なので、正しくないわけではないが、UTF-8の冗長的な表現方法とか、URLエンコードした文字コードがらみのデータとか受け取った場合にうまくいかない可能性があるので今一な気がする。
http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%83%88%E3%83%A9%E3%83%90%E3%83%BC%E3%82%B5%E3%83%AB
対するWikipediaのほうは、どんな環境でも使えるわけではないだろうけど、対策としては漏れが発生しにくい分、よいような。
後は、使用するファイルがあらかじめ決められているのであれば、ファイル名をそのまま埋め込むのでは無く、IDとファイル名の対応表のようなものを作っておき、HiddenにはIDを埋め込むというのもいい方法だと思う。

ま、IPAのやつに気になる部分が書いてあったので、書いただけだけど・・・