ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp の小さなバグ
2 日前、私の Web サイトに不可解な追加ファイルがあることに気づきました
元のアドレス: http://bbs.csdn.net/topics/390469279
今朝これらの不可解な HTML ファイルを観察し、ついに問題を発見しました。 ! !
理由:
静的キャッシュが有効になっている場合、静的ルールには次のようなパラメーターがあります。
//静态缓存 'HTML_CACHE_ON'=>true, 'HTML_CACHE_RULES'=> array( 'infor:search' => array('home/{:module}/{:action}/{key}'), ),
例のルールについては、 if key = ../boot
By $rule = preg_replace('/{(w+)} /e ',"$_GET['\1']",$rule); home/MODULE_NAME/ACTION_NAME/../boot として解釈されていることがわかりますこれは thinkphp のバグではありません
当然のことながら、自分の行動には責任を持たなければなりません
例のルールについては、 if key = ../boot
By $rule = preg_replace('/{(w+)} /e ',"$_GET['\1']",$rule);
home/MODULE_NAME/ACTION_NAME/../boot として解釈されていることがわかります
TP を妨げる理由はありますか?静的ファイルを上のディレクトリに配置しますか?
TP は {key} パラメータのフィルタリングを検討すべきだと思います。
フィルタリングしたい場合は、ルールを提供してコードを記述する必要があります
少なくとも http://bbs.csdn.net/topics/390469279/..x のような URL は攻撃を構成することはできません
他のものを期待することはできません私があなたのためにやったことすべてをフィルタリングするためです。結局のところ、それは単なる開発ツールです。
デデでこの現象が発生する場合はバグと言えます