16

私は開発中の Web サイトを持っていますが、これも Web アプリに取り込まれます。.htaccess許可されたIPにない人からのアクセスを防ぐために、ファイルに次のコードがあります。

Order deny,allow
Deny from all
AuthName "Restricted Area - Authorization Required" 
AuthUserFile /home/content/html/.htpasswd 
AuthType Basic
Require valid-user
Allow from 12.34.567.89 
Satisfy Any

Allow from質問:サイトへの特定の HTTP ユーザー エージェント アクセスも許可するルールを追加したいと考えています。

ユーザーエージェントでない場合は、このコードがリダイレクトされることがわかりました。

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !=myuseragent
RewriteRule ^files/.*$ / [R=302,L]

Allow fromしかし、これをルールに変える方法がわかりません。ヘルプ?

アップデート

myuseragent特定のユーザーエージェントをブロックする以下のコードを見つけました...代わりに、「そうでない場合はブロックする」と言いたいです。

<IfModule mod_rewrite.c>
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</ifModule>
4

6 に答える 6

20
SetEnvIfNoCase User-Agent .*google.* search_robot
SetEnvIfNoCase User-Agent .*yahoo.* search_robot
SetEnvIfNoCase User-Agent .*bot.* search_robot
SetEnvIfNoCase User-Agent .*ask.* search_robot

Order Deny,Allow
Deny from All
Allow from env=search_robot

Htaccess SetEnvIf および SetEnvIfNoCase の例

于 2012-08-08T12:46:40.477 に答える
7

すべてをブロックするのではなく、1 つの特定のユーザー エージェントを許可したいだけです

wgetのみを許可する設定は次のとおりです。

SetEnvIf User-Agent .*Wget* wget

Order deny,allow
Deny from all
Allow from env=wget
于 2013-01-18T17:44:01.577 に答える
5

Allow fromおよびRewrite*は、2つの異なるApacheのモジュールからのディレクティブです。

最初のものはmod_authz_hostで、もう1つはからmod_rewriteです。

あなたはあなたがしたいことをするために使うことができますmod_rewrite

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !=myuseragent
RewriteRule .* - [F,L]
于 2012-08-08T12:48:00.233 に答える
2

mode_rewrite を使用したくない場合は、Apache 2.4 で次のようなものを使用できます。

<Location />
                AuthType Basic
                AuthName "Enter Login and Password to Enter"
                AuthUserFile /home/content/html/.htpasswd
                <If "%{HTTP_USER_AGENT} == 'myuseragent'">
                Require all granted
                </If>
                <Else>
                Require valid-user
                Require ip 12.34.567.89
                </Else>
</Location>
于 2015-09-08T14:09:54.913 に答える
-2

すべてをブロックするのではなく、1 つの特定のユーザー エージェントを許可したいだけです

やあ

ここで考慮しなければならないことは、一部のボット (特に「大きく」目立つボット) は、複数のユーザー エージェントを使用してサイトにアクセスするということです。たとえば、Googlebot (クローラー) は、次のさまざまなユーザー エージェントをすべて使用できます。

Googlebot-Image/1.0 
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1;+htt://www.google.com/bot.html)
GoogleProducer 
SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
Google-Site-Verification/1.0
Google-Test
Googlebot/2.1 (+http://www.google.com/bot.html) 

私は、Google Plus や Google が使用する他の多くのボットについて話しているわけではありません。

ヤフーなども同様です。

ちょうど今週、私たちの会社 (Incapsula) はBotopedia.org を立ち上げました。これは、コミュニティ ソースのボット ディレクトリです。これは 100% 無料で誰にでも公開されており、これを使用して、許可するすべてのボットの完全なユーザー エージェント リストを見つけることができます。

必要に応じて、ボット検証用のリバース IP 機能も備えています。これは、偽の Googlebot へのアクセスに関する最近の調査が示しているように、一部のスパマーやサイバー攻撃者でさえ、正当なボット署名を使用してサイトに侵入しやすくするためです。

お役に立てれば。

于 2012-08-14T12:43:29.693 に答える