阻止假冒谷歌机器人

阻止假冒谷歌机器人

我如何才能阻止使用假 Google 机器人的 DDOS 攻击?

我在网上找到了 2 个解决方案。但似乎两者都能阻止正确的 Google 机器人。

# Block fake google when it's not coming from their IP range's (A fake googlebot) [F] => Failure
RewriteCond %{HTTP:X-FORWARDED-FOR} !^66\.249\.(6[4-9]|[78][0-9]|9[0-5])\.
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0\ \(compatible;\Googlebot/2\.[01];\ \+http://www\.google\.com/bot\.html\)$ [NC]
RewriteRule .* - [F,L]
# End if match

这是第二个:

# Validate Googlebots
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0\ \(compatible;\ Googlebot/2\.[01];\ \+http://www\.google\.com/bot\.html\)$
RewriteCond %{HTTP:Accept} ^\*/\*$
RewriteCond %{HTTP:Accept-Encoding} ="gzip,deflate"
RewriteCond %{HTTP:Accept-Language} =""
RewriteCond %{HTTP:Accept-Charset} =""
RewriteCond %{HTTP:From} ="googlebot(at)googlebot.com"
RewriteCond %{REMOTE_ADDR} ^66\.249\.(6[4-9]|7[0-9]|8[0-46-9]|9[0-5])\. [OR]
RewriteCond %{REMOTE_ADDR} ^216\.239\.(3[2-9]|[45][0-9]|6[0-3])\.0
# Optional reverse-DNS-lookup replacement for IP-address check lines above
# RewriteCond %{REMOTE_HOST} ^crawl(-([1-9][0-9]?|1[0-9]{2}|2[0-4][0-9]|25[0-5])){4}\.googlebot\.com$
RewriteRule ^ - [S=1]
## Block invalid Googlebots
RewriteCond %{HTTP_USER_AGENT} Googlebot [NC]
RewriteRule ^ - [F]
# END sending now 403 to fake Googebots

有人能建议一种解决方案来阻止使用假 googlebots 的 DDOS 攻击吗?

答案1

您提供的两种方法似乎允许基于已知的 IP 范围。您需要验证正则表达式匹配是否是最新的,以及您正在检查的范围是否是 Google 实际使用的范围。如果您实际上处于“DDoS”之下,我不建议您在 .htaccess 文件中使用反向 DNS 查找选项。

另外,我们建议你使用某种类型的“Web 应用程序防火墙”。Sucuri 和 CloudFlare 都提供过滤此类流量(和其他恶意内容)的服务,并且可以大大减少你服务的“恶意机器人”请求的数量。

—CloudFlare:https://www.cloudflare.com/waf/

— 苏库里:https://sucuri.net/website-firewall/

答案2

这时就需要防火墙了。防火墙有特殊的内置用途,其中一些就是为此而设的。

我会研究 ASA 或 Dell SonicWall 防火墙。默认情况下,它会阻止类似的东西。

相关内容