人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Apache/2.2.25サーバ上でのアクセス制限についてです。
ドメイン直下のフォルダ(以下dir)の直下に.htaccessファイルを置きテキストファイルへのアクセスを不許可にしました。
ドメイン/dir/a.txtというアドレスでアクセスしたときはアクセスできないのですが、ドメイン/a.php/dir/a.txt(a.phpはドメイン直下にある)というアドレスのときはa.txtの内容が表示されます。a.phpに制限を掛けれないとして表示されないようにするにはどうすればいいですか?



●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

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をアクセスできる所に置かない」
いや、真面目にセキュリティの基本なんですよ?


匿名質問者さんのコメント
丁寧にありがとうございます。深入りしたくないと思いました。仕様が簡易なサーバとか分かりやすい管理ツールを備えたレンサバを探すかどうか検討します。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ