匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

Apache/2.2.25サーバ上でのアクセス制限についてです。

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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/02/01 04:00:42
  • 終了:2014/02/08 04:05:04

ベストアンサー

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2014/02/02 00:21:26

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

匿名質問者

丁寧にありがとうございます。深入りしたくないと思いました。仕様が簡易なサーバとか分かりやすい管理ツールを備えたレンサバを探すかどうか検討します。

2014/02/02 04:42:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません