求救:屏蔽爬虫试了 2 天,没成功

103 天前
 cokyhe

一台 10 年的老服务器,最近 bingbot 疯狂刷流量,用$http_user_agent 为啥屏蔽不了... nginx 日志里 N 多类似这样的记录:

172.68.244.177 - - [04/Aug/2024:04:04:10 -0400] "GET /find-app/%E0%B8%AD%E0%B8%B2%E0%B8%8A%E0%B8%B5%E0%B8%9E%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%8A%E0%B8%B2%E0%B8%A7%E0%B8%AB%E0%B8%A7%E0%B8%B9%E0%B9%88%E0%B8%AB%E0%B8%A5%E0%B8%B4%E0%B8%87%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0%B8%81%E0%B8%9B%E0%B8%A5%E0%B8%B2%E3%80%90ta777.me%E3%80%91%E0%B8%AD%E0%B8%B2%E0%B8%8A%E0%B8%B5%E0%B8%9E%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%8A%E0%B8%B2%E0%B8%A7%E0%B8%AB%E0%B8%A7%E0%B8%B9%E0%B9%88%E0%B8%AB%E0%B8%A5%E0%B8%B4%E0%B8%87%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0%B8%81%E0%B8%9B%E0%B8%A5%E0%B8%B2%E3%80%90ta777.me%E3%80%91w7t?page=2 HTTP/1.1" 403 571 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/116.0.1938.76 Safari/537.36" 52.167.144.211
172.71.222.36 - - [04/Aug/2024:04:04:10 -0400] "GET /find-app/%E6%B9%96%E5%8D%97%E6%B0%B4%E5%88%A9%E6%B0%B4%E7%94%B5%E8%81%8C%E4%B8%9A%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2%E6%AF%95%E4%B8%9A%E8%AF%81%E6%A0%B7%E6%9C%AC%E5%9B%BE%E7%89%87%E2%8F%A9%E5%8A%9E%E7%90%86%E7%BD%91zhengjian.shop%E2%8F%AA-%E5%93%AA%E9%87%8C%E4%B9%B0%E6%B9%96%E5%8D%97%E6%B0%B4%E5%88%A9%E6%B0%B4%E7%94%B5%E8%81%8C%E4%B8%9A%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2%E6%AF%95%E4%B8%9A%E8%AF%81%E6%A0%B7%E6%9C%AC%E5%9B%BE%E7%89%87%F0%9F%8C%9F%E5%8A%9E%E8%AF%81%E7%BD%91zhengjian.shop%F0%9F%8C%9F-%E5%BC%A0%E5%AE%B6%E6%B8%AF%E6%B9%96%E5%8D%97%E6%B0%B4%E5%88%A9%E6%B0%B4%E7%94%B5%E8%81%8C%E4%B8%9A%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2%E6%AF%95%E4%B8%9A%E8%AF%81%E6%A0%B7%E6%9C%AC%E5%9B%BE%E7%89%87%E5%93%AA%E9%87%8C%E6%9C%89-%E5%93%AA%E9%87%8C%E5%8A%9E%E6%B9%96%E5%8D%97%E6%B0%B4%E5%88%A9%E6%B0%B4%E7%94%B5%E8%81%8C%E4%B8%9A%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2%E6%AF%95%E4%B8%9A%E8%AF%81%E6%A0%B7%E6%9C%AC%E5%9B%BE%E7%89%87Q5?page=3 HTTP/1.1" 403 571 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/116.0.1938.76 Safari/537.36" 52.167.144.211

以下是完整配置

server
    {
  	listen       80;
  	listen     443 ssl;
  	#
    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
    ##    ssl_session_timeout  5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;

    ## enable HSTS including subdomains
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

  	server_name  domain.com www.domain.com;
  	index index.html index.htm index.php;
  	root  /opt/htdocs/www.domain.com/public;

  	#301

  	if ($host = 'domain.com') {
  		rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
  	}

#location ~ /find-app {
	if ($http_user_agent ~* "bingbot|AhrefsBot") {
return 403;
}
#}
  	location / {
          try_files $uri $uri/ /index.php?$query_string;
      }
      #申请 let’s Encrypt SSL 用
      location ~ /.well-known {
              allow all;
      }


  	if (!-e $request_filename) {
  	}

  	location ~ .*\.(php|php5)?$
  	{
  	  #fastcgi_pass  unix:/tmp/php-cgi.sock;
  	  fastcgi_pass  127.0.0.1:9000;
  	  fastcgi_index index.php;
  	  include fcgi.conf;
  	}

  	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  	{
  	  expires      30d;
  	}

  	location ~ .*\.(js|css)?$
  	{
  	  expires      15d;
  	}
  	access_log  /data0/logs/domain.log  access;
    }
3661 次点击
所在节点    NGINX
16 条回复
Xusually
103 天前
屏蔽成功了呀 你贴的两条日志 status code 都是 403 ,说明你规则生效了。
ZhilingQwQ
103 天前
为什么不用 robots.txt 呢
unidotnet
103 天前
为什么不用 robots.txt 呢 +1
cokyhe
103 天前
日志里是 403 了,但是对应的 php 代码确还在执行,cpu 狂飙,我再查查吧,谢谢楼上的兄弟
julyclyde
103 天前
@cokyhe 按说 return403 就是最终结果了吧,不至于再去 fastcgi_pass 一次吧?
AkaGhost
103 天前
bingbot 遵守 robots.txt ,直接用 robots.txt 告诉 bingbot 别来爬网了就行
Xusually
102 天前
而且你贴的这 2 个 IP 根本不是 Bing 的 bot ip ,你可以在这里确认是否是真的 bing bot: https://www.bing.com/toolbox/verify-bingbot

那两个 IP 是 cloudflare 的 ip ,是伪造的爬虫
moyaya
102 天前
最近各种爬虫太多了,尤其是 AI 公司。
yb2313
102 天前
给他爬的的东西里下毒, 反正爬虫也不管这些
xqzr
102 天前
@Xusually 日志行尾 是真的 IP
jaylee4869
102 天前
套 CDP ,WAF 上拦截 JA3 / JA4 。
国外的服务无脑 [Cloudflare]( https://lawrenceli.me/blog/cloudflare#client-hello---ja3)
Xusually
102 天前
@xqzr 是的,我看错了,这个 IP 是 bing bot
xiaoxiaov
102 天前
给服务器弄个雷池社区版,一劳永逸
lpe234
102 天前
这是爬虫吗?这是来打广告的吧。 [app/湖南水利水电职业技术学院毕业证样本图片⏩办理网]
RangerWolf
102 天前
@Xusually 有没有 facebook 的爬虫 IP 验证的?
我的站被 facebook 爬了
coder001
101 天前
@lpe234 看来可能又是黑产的新玩法,比如诱导搜索引擎爬虫去干坏事之类的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1062404

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX