わからないこと
今朝、.htaccessの設定のために検索して調べては.htaccessを上書きして試行・・・という作業を延々と繰り返していたところ、本現象に気が付きました。
codeigniterではindex.php/以降のリクエストからコントローラが実行されますが、ここに存在しないクラスやメソッドの名前が入力された場合には404エラーになるはずが、余計な「.」や「.」が入力されてもページが表示されてしまいました。
「http://example.com」は末尾にドットを足して
「http://example.com.」でも表示され、
「http://example.com/form/」は文字中にドットを足して
「http://example.com/.f.o.r.m./」でも表示されました。
さらに
「http://example.com////.f.o.r.m./」というURLでもアクセスできてしまいました。
このような「.」や「/」が含まれたリクエストが送られてきた場合、どのように対処すればよいのでしょうか。
URL中に無数の「.」や「/」が含まれているにも関わらず目的のページにアクセスできてしまうのはなんだか気持ちが悪いです。
やってみたいこと
「http://oreoredomain.jp.」や
「http://example.com///.f...o..r..m./」
などのリクエストに対して404エラーを出すようにしたいです。
.htaccessで処理できるものなのか、
それともアプリケーション側をいじる必要があるのか、
ヒントだけでも頂けたら嬉しいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/28 04:18