こんにちは、質問させてください。
webサイトを運営しており、.htaccessによるアクセス規制を検討しています。
下記のように複数のアクセス規制をしたい場合、どのように書けば良いでしょうか?
○特定IPアドレスからのアクセス
○プロキシ経由でのアクセス
○特定URLからのアクセス
過去ログ等を検索してみて、現在、以下のようなソースにしています。
-------------------------------------
#特定IPとプロキシ経由の拒否
order allow,deny
allow from all
deny from ***.***.**.***
order deny,allow
deny from all
allow from .jp
allow from .net
allow from .com
#特定アドレスからのアクセス拒否
SetEnvIf Referer "http://sample.url.com" ref01
order Allow,Deny
Allow from all
Deny from env=ref01
-------------------------------------
プロキシ経由の場合、すべてを弾くのは難しいと思いますが…
何か他に良い書き方がありましたら、アドバイスをお願いします。
よろしくお願いします。
No.3
- 回答日時:
NO.2です。
すみません、ひとつ訂正します。× 実際上記内容の.htaccessを試してみましたら、Internal Server Errorになりました。
○ 実際上記内容の.htaccessを試してみましたら、403 Forbiddenになりました。私は「,jp」に該当して、「***.***.**.***」と「http://sample.url.com」には該当していない設定です。
No.2ベストアンサー
- 回答日時:
envというのは、UNIXのユーティリティだそうです。
環境変数のリストを出力したりするのに使われます。詳しくはこちらを↓。
http://ja.wikipedia.org/wiki/Env
環境変数とはNO.1さんが書いたHTTP_CACHE_CONTROLなどのことです。
これも詳しくはこちらを↓。一番下に説明があります。
http://ja.wikipedia.org/wiki/%E7%92%B0%E5%A2%83% …
質問者さんの記述ですが、上記の書き方ですと例えば「***.***.**.***」にも「.jp .net .com」にも「http://sample.url.com」にも該当しない場合、どうなってしまうと思われますか?
恐らくサーバーも混乱するんじゃないかと思います。
実際上記内容の.htaccessを試してみましたら、Internal Server Errorになりました。
ひとつの階層でorderingの内容はひとつだけではないかと思います。
order allow,denyかorder deny,allowかまずどちらかに決めることだと思います。
この場合はorder allow,denyにするのがいいのではと個人的に思います。
こんな感じで…。
#ここから
SetEnvIf Referer "http://sample.url.com" ref01
order allow,deny
allow from all
deny from env=ref01
deny from ***.***.**.***
#ここまで
「.jp .net .com」は通ります。
あとは拒否したいホスト、IPをdeny fromとして書き足していけばよいのではと思います。環境変数の場合はSetEnvIfで。
プロキシについては多種多様ありますし、きりがないと思います。取りあえず海外のホストを弾くなどでしょうか。もし海外在住の人が来られなくなってもいいのでしたら…。
ご回答いただきありがとうございます。
返信が遅くなってしまってすみません。
最初のソースのままで確認をしたら、同じように403 Forbiddenと表示されました。
規制条件に該当しなければ閲覧できるというものではないのですね;
プロキシを完全に遮断するのはやはり難しいので、
お薦めの通り、order allow,denyのみで規制をかけてみようと思います。
ソースもシンプルで、分かりやすいです。
詳しく教えていただいてありがとうございました。
大変勉強になりました。
No.1
- 回答日時:
以下のenvはプロキシ経由の特徴です。
しかし必要なのも弾いてしまいます。
2ちゃんねるのばあいは公開プロキシを常に調査してブラックリストを作ってますね。
HTTP_CACHE_CONTROL
HTTP_CACHE_INFO
HTTP_CLIENT_IP
HTTP_FORWARDED
HTTP_FROM
HTTP_PROXY_CONNECTION
HTTP_SP_HOST
HTTP_VIA
HTTP_XONNECTION
HTTP_XROXY_CONNECTION
HTTP_X_FORWARDED_FOR
HTTP_X_LOCKING
この回答への補足
ご回答いただき有り難うございます。
envというのは、一体何なのでしょうか?
プロキシを完全に弾くことは難しいと聞いたので、
ある程度弾くことが出来れば良いと考えています。
ソースの書き方は、上記で問題ないでしょうか?
.htaccessを初めて設置するため、
初歩的な質問ばかりで、申し訳ないです。
補足・アドバイス等頂けましたら幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Gmail SPFレコードとDNSサーバーについて、gmailを設定できるかどうか 2 2023/06/10 23:55
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- Chrome(クローム) PC版Chromeで特定サイトの読み込み時のデータ量を軽減したい(特に画像データ) 1 2023/02/09 17:50
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クライアントのIPとマシン名を...
-
よくある 『 第○(1・2・3・4・...
-
月の第一週とは
-
perlでHTTP Request Headersの...
-
毎○曜日って、使いますか?
-
エクセルで毎月第2週日の水曜日...
-
6月の第2 第4火曜日は何日...
-
週2回のペースって だいたい何...
-
DBを10件毎に表示ページング...
-
毎週同じ曜日にラブホに行くと...
-
エクセルで相対パスの書き方を...
-
ヘッダのinclude順
-
apacheでPerl CGIが作動せず、5...
-
燃えるゴミの日は何曜日ですか?
-
Excel VBA 第〇△曜日の場合休日...
-
useとrequireでエラー
-
関数ヘッダ?
-
アンケートなどの1日1回の投...
-
レスポンスヘッダの出力方法
-
ユーザー定義の(aaa)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クライアントのIPとマシン名を...
-
HttpClientを利用してのサービ...
-
webサーバでクライアントを特定...
-
プロキシサーバ経由を拒否したい
-
URLConnection Timeoutエラー
-
ネットワーク上のサーバーの空...
-
社外からのアクセスかどうか判...
-
リファラーの取得方法
-
IPとホスト名の変換について
-
perlの環境変数 ENV{'REMOTE_A...
-
グローバルIPアドレスの取得。
-
strutsでのgetInputStream
-
AMAZON APIに接続するプログラ...
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
毎○曜日って、使いますか?
-
燃えるゴミの日は何曜日ですか?
-
週2回のペースって だいたい何...
-
apacheでPerl CGIが作動せず、5...
おすすめ情報