
httpd.confの末尾に次の記述をしてapacheをリスタートしtop.htmlにアクセスしても
403エラーとなりアクセスできません。原因が分かる方よろしくお願いします。
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/aaa">
Order deny,allow
Deny from all
SetEnvIf REFERER localhost referer_ok
Allow from env=referer_ok
</Directory>
<Files "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/aaa/top.html">
Order allow,deny
Allow from all
</Files>
No.2ベストアンサー
- 回答日時:
質問の内容を整理すると
「ローカルホストからのアクセスはすべてのファイルに対してアクセスを許可して、外部からのアクセスは許可したファイルのみアクセスできるようにしたい」
ということですね。
私も、下の行が何やっているのか(?)とよく分からなかったのですが、
ローカルホストからのアクセスを許可したかったということですね。
>SetEnvIf REFERER localhost referer_ok
>Allow from env=referer_ok
えーっと、セキュリティの話からさせていただきます。
これは、非常にまずいやり方です。
理由は簡単で、 Referer というのは、HTTPクライアント(ブラウザ)が送信してきた内容ですので、リファラーは偽装可能です。
たとえば、「Firefox addon Modify Referer」などで検索していただければ見つかると思います。
これが悪用された場合、リファラーを http://localhost/ のように偽装することで外部からの不正アクセスリスク(セキュリティホール)が生じます。
下のようにIPアドレスまたはドメイン名でアクセス制限をしてください。
<Directory ....>
Order deny,allow
Deny from all
# LAN からのみ(ネットワークアドレス指定)
Allow from 192.168.1.0/24
# LOCALHOST <-- よく設定漏れして http://localhost/ でアクセスできないことに気づく(^^;)
Allow from 127.0.0.1
</Directory>
つまり、下のような感じになると思います。
<Directory htdocs/aaa>
Order deny,allow
Deny from all
Allow from 127.0.0.1
<Files top.html>
Order allow,deny
Allow from all
</Files>
</Directory>
つぎに、<Files> で top.html のアクセス制御が上書きされなかった理由について
質問内容のような記述の <Files> はシンタックスエラーにはなりませんが、意味的にエラーになると思います。マニュアルを読む限り <Files> はファイル名を指定する(パス名ではない)ためにあります。特定のディレクトリのファイルに対して使用する場合に、 <Directory> と合わせて使用できるとあります。
<Files> は .htaccess と併用して個別のファイルのアクセスを制御するために用いるのが標準的なようです。
httpd.conf には、 <FilesMatch "^\.ht"> とあるように設定ファイルなどを隠すために使用しています。
ちなみに、 <Files top.html> を <Directory> の外で指定した場合、すべてのディレクトリの top.html にアクセスできるようになります。つまり、あるディレクトリに対して <Directory> でアクセス禁止に指定しても <Files top.html> はそれを上書きするため top.html だけはアクセス禁止が無効化されます。正常な動作ですが、セキュリティ上問題になることも考えられるため注意して使用したほうがいいでしょう。
詳しい回答ありがとうございます。
初心者の自分にも理解できる分かり易い回答でした。
セキュリティーの問題があるのですね、リファーじゃなくIPアドレスで識別したいと思います。
FilesもDirectoryの中で使うようにしたいと思います。
ありがとうございました。
No.1
- 回答日時:
httpd.conf の設定例
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/aaa">
Order deny,allow
Deny from all
<Files top.html>
Order allow,deny
Allow from All
</Files>
</Directory>
詳細はマニュアルを確認してください。
マニュアルを有効にするには、 http.conf のマニュアル設定をインクルードします。
# Local access to the Apache HTTP Server Manual
Include conf/extra/httpd-manual.conf
↑この行の #Include を Include に変更します。
以下のようなURL(/manual/)にアクセスするとマニュアルが表示されます。
サーバ名、ポート番号は適切に置き換えてください。
http://localhost:8080/manual/
http://localhost:8080/manual/sections.html
回答ありがとうございます。入れ子にするのですね。
しかし、まだ何故質問内容の様にしても実現出来なかったのか理解できてません。
まずdirectoryでlocalhost以外からのアクセスを禁止して、
そのあとfilesでtop.htmlだけはどこからでもアクセス出来るように
したらtop.htmlだけはdirectoryで設定したアクセス禁止の設定を上書きして
localhost以外からでもアクセス出来るようになる、
と思うのですが、どうなんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大文字はできるだけ使わない方...
-
NetBTエラーとbrowserエラーが多発
-
Thunderbird 振り分けされなく...
-
Tera Termでのコマンド流し込み...
-
ブラウザにIPアドレスを直打ち...
-
xcopyバッチを管理者として実行...
-
「管理者権限付きで実行」の挙動
-
フォルダについて。
-
フォルダのサムネイル画像
-
Teratermで、条件分岐させたい
-
icaclsの読み方
-
FTPのログイン履歴を取得するに...
-
大量のフォルダへのハイパーリ...
-
撮影後、SDカードに作成される...
-
コマンドの戻り値が「130」
-
共有フォルダの共有権限の移行...
-
2010でShiftキーを使っても自動...
-
iPhoneでフォルダに分けして整...
-
元のフォルダに矢印キーで帰りたい
-
ディレクトリ数のみを取得する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大文字はできるだけ使わない方...
-
存在しないページを指定してもT...
-
C++でWEBブラウザを作成する
-
ローカルサーバーの構築
-
htmlでサーバのディレクトリを...
-
ルート相対パス
-
dojoをドキュメントルートの上...
-
Apacheで特定のファイルのみア...
-
ファイル名が変わってしまいます。
-
どなたか教えて下さい。
-
eclipseのPHP Explorerに、.hta...
-
ASPページを開くとユーザー名と...
-
FFFTPを使ったアップロードがで...
-
.htaccessによる検索結果からの...
-
XAMPPで外部からアクセスする方法
-
win7でhttpdを動かしたい。
-
「管理者権限付きで実行」の挙動
-
Thunderbird 振り分けされなく...
-
NetBTエラーとbrowserエラーが多発
-
Tera Termでのコマンド流し込み...
おすすめ情報