▽1
●
匿名回答1号 ベストアンサー |
1. locationを使う
<Location /a.php/dir> Order Allow,Deny Deny from all </Location>
/a.php/dirで始まるurlは弾く。ただ、/a.php/DIRとか/a.php/../dirとかでアクセス出来るかもしれない。それを防ぐなら下記もありかも知れないが、誤爆も十分ありえる。
<LocationMatch /a\.php.*dir> Order Allow,Deny Deny from all </Location>
2.mod_rewriteを使う
RewriteRule ^/a\.php.*dir - [F,NC]
LocationMatchのrewrite版。同じく誤爆は十分にありえる。
こっちなら.htaccessに書ける(場所はdir直下じゃなくDocumentRoot直下という点に注意)。
いちおう回答してみたが、a.phpにどんな穴があるか分からない(¥でエスケープとか%エンコードとか)ので、a.phpのコントロールを得る(出来れば破棄する)のが最善の気がする。
あとはsuexecでパーミッション使って制限する方法もありそうだけど、詳しくないので書かない。
あ、一つ忘れていた。根本的な所。
「a.txtをアクセスできる所に置かない」
いや、真面目にセキュリティの基本なんですよ?