アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは、質問させてください。
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

-------------------------------------

プロキシ経由の場合、すべてを弾くのは難しいと思いますが…
何か他に良い書き方がありましたら、アドバイスをお願いします。
よろしくお願いします。

A 回答 (3件)

NO.2です。

すみません、ひとつ訂正します。
× 実際上記内容の.htaccessを試してみましたら、Internal Server Errorになりました。
○ 実際上記内容の.htaccessを試してみましたら、403 Forbiddenになりました。私は「,jp」に該当して、「***.***.**.***」と「http://sample.url.com」には該当していない設定です。
    • good
    • 0

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で。
プロキシについては多種多様ありますし、きりがないと思います。取りあえず海外のホストを弾くなどでしょうか。もし海外在住の人が来られなくなってもいいのでしたら…。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
返信が遅くなってしまってすみません。
最初のソースのままで確認をしたら、同じように403 Forbiddenと表示されました。
規制条件に該当しなければ閲覧できるというものではないのですね;

プロキシを完全に遮断するのはやはり難しいので、
お薦めの通り、order allow,denyのみで規制をかけてみようと思います。
ソースもシンプルで、分かりやすいです。
詳しく教えていただいてありがとうございました。
大変勉強になりました。

お礼日時:2008/12/03 11:27

以下の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を初めて設置するため、
初歩的な質問ばかりで、申し訳ないです。
補足・アドバイス等頂けましたら幸いです。

補足日時:2008/11/28 22:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!