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で質問しましょう!
似たような質問が見つかりました
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- ソフトウェア Aimpに関する質問です。 1 2022/09/08 11:11
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
存在しないページを指定してもT...
-
大文字はできるだけ使わない方...
-
Apacheで特定のファイルのみア...
-
Thunderbird 振り分けされなく...
-
xcopyバッチを管理者として実行...
-
ブラウザにIPアドレスを直打ち...
-
JP1で月末以外で毎週月曜日のジ...
-
C:\\Documents and Settingsが...
-
Tera Termでのコマンド流し込み...
-
x64とIA64の違い
-
OUTLOOK連絡先をグループ分けす...
-
MODE関数を文字でできる関数は...
-
GIGABYTE ユーティリティについて
-
ブックマークしたことは、サイ...
-
大量のフォルダへのハイパーリ...
-
フォルダのサムネイル画像
-
コマンドの戻り値が「130」
-
【マクロ】フォルダを3つ、PO...
-
2010でShiftキーを使っても自動...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大文字はできるだけ使わない方...
-
FFFTPを使ったアップロードがで...
-
Apacheで特定のファイルのみア...
-
C++でWEBブラウザを作成する
-
存在しないページを指定してもT...
-
HTMLで大文字と小文字を区別し...
-
シンボリックリンクでドキュメ...
-
ちょっとした事なんですが・・...
-
BASIC認証でダイアログが開かない
-
ApacheとPHPの設定で
-
XAMPPのIPアドレスについて
-
ASPページを開くとユーザー名と...
-
public_htmlは必要でしょうか?
-
HTTP TRACEメソッドについて
-
ルート相対パス
-
「メンテナンス中」と表示するには
-
Thunderbird 振り分けされなく...
-
Tera Termでのコマンド流し込み...
-
フォルダのサムネイル画像
-
【マクロ】エクセルにかいてあ...
おすすめ情報