这是一个瞬息万变的事件,目前还没有答案。
请不要发布您的发现或假设作为答案;保留答案字段以供您实际获得答案时使用。
如果您有新内容要添加,请直接将其编辑到问题中。
自今年年初以来,我通过用户代理获得了大量流量:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729).
我的访问日志显示 40% - 60% 来自该用户代理。这很奇怪,因为用户代理声明了 Firefox 3.0.10 浏览器(有人在 2012 年使用该浏览器吗?绝对不是普通网站上 40%-60% 的访问者)。
此外,日志显示该用户代理仅请求 HTML 文档,没有引用图像、css、js 文件等资源。
我检查了这些请求的 IP(使用该 UA)。它来自世界各地。我认识到这些 IP 有时具有移动用户代理。
所以我怀疑是一个正在执行大量“蜘蛛请求”的移动应用程序。最好知道来自该用户代理的流量的根本原因。
在过去的几周里,我们意识到来自该 UA 的流量下降了,而其他流量却增加了。看起来机器人/爬虫现在使用的是更常见的 UA,因此更难阻止。我看到有人在回答这个问题时这么说,但是当 serverfault 决定重新安排这个问题时,它被删除了。
旧答案作为参考
来自Dee 的更新
我运行着自己的流量非常高的网站,我在上个月左右的 apache 日志中看到了完全相同的内容(我还没有机会进一步检查)。所有请求的 40% 是我看到的百分比,这显然很疯狂。
而且我还注意到请求似乎总是说请求浏览器不支持 gzip 压缩 - 导致所有网页请求都未经压缩发送,我们的带宽使用量激增!
但到目前为止,我一直无法确定到底发生了什么——到目前为止,我怀疑它可能是某种代理服务器,或者用于发送虚假用户代理字符串的移动设备。
编辑添加:只是做了一些更多的研究,看起来它可能是防病毒软件:http : //www.webmasterworld.com/search_engine_spiders/4428772.htm
来自jamur21 的更新
是的,我们注意到跨多个站点的类似流量。
我们仍在寻找根本原因,但我们的一些发现包括:
如果它是一只蜘蛛,它的工作就很糟糕。它似乎在一段时间内(可能几个小时)对每个域只敲击一个或两个 URL,直到它移动到另一个 URL。然而,内容总是相对“最新”的,这使谷歌新闻成为一个因素,正如 Dee 在他/她的回答中发布的链接所假定的那样(我们所有的网站都是新闻网站)。
虽然 …
我最初发布在webmasters.stackexchange.com 上,但被告知我会在这里得到更好的接待。
在过去的几天里,我一直在遭受(可能是无意的)DDOS 攻击。我从一个标识为“Mozilla/4.0(兼容;ICS)”的代理那里收到了很多请求,apache 吃掉了所有可用内存。
因此,我想阻止此用户代理伴随的所有请求,因此我尝试在 httpd.conf 中执行此操作:
SetEnvIfNoCase User-Agent "Mozilla/4.0 (compatible; ICS)" bad_user
Deny from env=bad_user
Run Code Online (Sandbox Code Playgroud)
但是当我重新启动 apache 时,它抱怨在deny这里使用。不必将它包装在一个location或directory块中,这意味着我必须为每个站点添加一个新块,有什么办法可以拒绝访问整个服务器?
更新:我得到的错误
- 重新启动 Web 服务器 apache2
/etc/apache2/httpd.conf 第 4 行出现语法错误:这里不允许拒绝 [失败]
我有一个脚本编写者使用代理来攻击我正在服务的网站。
我注意到他们倾向于通过带有某个通用用户代理字符串的软件访问该站点(即http://www.itsecteam.com/en/projects/project1_page2.htm“Havij高级 sql 注入软件”带有 user_agent 字符串的Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Havij)。我知道任何值得称道的破解软件都可能能够修改它的用户代理字符串,但我对脚本编写者在某些时候必须处理该功能感到满意。
那么,是否有任何软件可以通过匹配用户代理字符串来自动阻止访问和永久列入黑名单?
Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit/536.26
(KHTML, like Gecko) GSA/3.2.1.25875 Mobile/11D167 Safari/8536.25
Run Code Online (Sandbox Code Playgroud)
“GSA”部分是什么?
我试图弄清楚,但谷歌搜索是不够的(唯一有意义的结果是关于 gsa-crawler,但看起来并不是这样)。但是对于 Safari,我曾经期望像
Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit/537.51.2
(KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53
Run Code Online (Sandbox Code Playgroud)
当然,我理所当然地认为它不是伪造的字符串......
我正在尝试使用带有 -f 选项的 haproxy ACL 从文件中读取来拒绝来自特定用户代理的连接(通过匹配用户代理标头的子字符串)。但是它不起作用,它运行时好像忽略了配置。
有更多haproxy经验的人可以指出我缺少什么吗?或者关于如何调试这个 haproxy 配置的一些提示?
我正在运行 haproxy 1.4.18。
这是 haproxy.cfg 的摘录:
listen http 0.0.0.0:80
acl abuser hdr_sub(user-agent) -f /etc/haproxy/abuser.lst
tcp-request content reject if abuser
mode http
server www1 127.0.0.1:8080 maxconn 10000
Run Code Online (Sandbox Code Playgroud)
这是abuser.lst 文件的内容:
# annoying bots
annoyingbot1
annoyingbot2
Run Code Online (Sandbox Code Playgroud) 我需要根据用户代理将流量重定向到一个后端或另一个后端。这是正确的做法吗?
server {
listen 80;
server_name my_domain.com;
if ($http_user_agent ~ iPhone ) {
rewrite ^(.*) https://m.domain1.com$1 permanent;
}
if ($http_user_agent ~ Android ) {
rewrite ^(.*) https://m.domain1.com$1 permanent;
}
if ($http_user_agent ~ MSIE ) {
rewrite ^(.*) https://domain2.com$1 permanent;
}
if ($http_user_agent ~ Mozilla ) {
rewrite ^(.*) https://domain2.com$1 permanent;
}
}
Run Code Online (Sandbox Code Playgroud) 使用nginx,如何为不同的用户代理提供不同的静态文件?例如,如果当前用户正在使用 iPhone,则应为他们提供服务mobile_index.html,而应为所有其他用户代理提供服务browser_index.html。
找到解决方案:
server {
listen 80;
root /var/www;
set $mobile_request '0';
if ($http_user_agent ~ 'iPhone') {
set $mobile_request '1';
}
location =/ {
if ($mobile_request = '1') {
rewrite ^ /mobile_index.html;
}
if ($mobile_request = '0') {
rewrite ^ /browser_index.html;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在环顾四周,并试图找出保护我的几个网站的最佳方法。
除了明显的站点日志手动监控和禁止极端/可疑活动之外。我看过很多关于禁止用户代理的帖子等。这是一条好的下山路线吗?是否也是一个更好的主意,而不是禁止已知的不良用户代理,只允许常见的主流用户代理,如 IE、FireFox、Safari 和 Chrome?
useragent ×8
nginx ×2
.htaccess ×1
apache-2.2 ×1
blacklist ×1
blocking ×1
haproxy ×1
http ×1
http-headers ×1
httpd.conf ×1
iphone ×1
security ×1
static-files ×1
web ×1
website ×1