由useragent或空引用块阻止

时间:2011-09-10 15:02:12

标签: .htaccess mod-rewrite

一个陌生人机器人(GbPlugin)正在编纂图像的网址并导致错误404 我试图阻止机器人在我的.htaccess底部没有成功,但它没有用。

Options +FollowSymlinks  
RewriteEngine On  
RewriteBase /  
RewriteEngine on  
RewriteCond %{HTTP_REFERER} !^$  
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]  
RewriteCond %{HTTP_USER_AGENT} ^GbPlugin [NC]  
RewriteRule .* - [F,L]     

下面的日志。

201.26.16.9 - - [10/Sep/2011:00:06:05 -0300] "GET /wp%2Dcontent/themes/my_theme%2Dpremium/scripts/timthumb.php%3Fsrc%3Dhttp%3A%2F%2Fwww.example.com%2Fwp%2Dcontent%2Fuploads%2F2011%2F08%2Fmy_image_name.jpg%26w%3D100%26h%3D65%26zc%3D1%26q%3D100 HTTP/1.1" 404 1047 "-" "GbPlugin"

对不起我的语言错误

3 个答案:

答案 0 :(得分:25)

以下是您可以在.htaccess文件中添加的内容

Options +FollowSymlinks  
RewriteEngine On  
RewriteBase /  
SetEnvIfNoCase Referer "^$" bad_user
SetEnvIfNoCase User-Agent "^GbPlugin" bad_user
SetEnvIfNoCase User-Agent "^Wget" bad_user
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_user
SetEnvIfNoCase User-Agent "^EmailWolf" bad_user
SetEnvIfNoCase User-Agent "^libwww-perl" bad_user
Deny from env=bad_user

这将返回:

HTTP request sent, awaiting response... 403 Forbidden
2011-09-10 11:15:48 ERROR 403: Forbidden.

答案 1 :(得分:2)

我可以推荐这种方法:

将此.htaccess放在您网站的根目录中。

ErrorDocument 503 "Your connection was refused"
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ [NC]
RewriteRule .* - [R=503,L]

其中

^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$

是我想在此示例中阻止的两个用户。

您可以使用正则表达式,如

之类的使用者
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0

可能是

Mozilla.*Firefox\/40.0

^表示从开头和$到结尾的匹配,因此您可以阻止只有一个使用者:

ErrorDocument 503 "Your connection was refused"
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*Firefox\/40.0$ [NC]
RewriteRule .* - [R=503,L]

或使用|添加几个在第一个例子中将(和)内部分开的字符。

RewriteCond %{HTTP_USER_AGENT} ^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ [NC]

您可以将您的useragent放入代码中,然后尝试访问该网站来测试它。 http://whatsmyuseragent.com/

答案 2 :(得分:0)

要阻止空引用,您可以使用以下规则:

TextView mynewtotal = (TextView) view.findViewById(R.id.txtprice);
EditText mycartonprod = (EditText) view.findViewById(R.id.txtordercarton);
mycartonprod.setFocusableInTouchMode(true);
mycartonprod.setFocusable(true);
EditText myprod = (EditText) view.findViewById(R.id.txtproduct);
myprod.setFocusableInTouchMode(true);
myprod.setFocusable(true);

如果RewriteEngine on RewriteCond %{HTTP_REFERER} ^$ RewriteRule ^ - [F,L] 值为空HTTP_REFERER,则会禁止对您网站的所有请求。

要阻止用户代理,您可以使用

^$

如果RewriteEngine on RewriteCond %{HTTP_USER_AGENT} opera|firebox|foo|bar [NC] RewriteRule ^ - [F,L] 与条件模式匹配,这将禁止对您网站的所有请求。