全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 497|回复: 8

Nginx阻止特定User Agent访问,遇到点问题

[复制链接]
发表于 2025-6-23 01:55:28 | 显示全部楼层 |阅读模式
起因是我发现配置里的YisouSpider,在日志里依然可以正常访问,还是200的状态码。
下面这两段if,到底有啥区别,为啥我默认配置里的YisouSpider依然可以200访问。

其中一条日志:
106.8.137.218 - - [22/Jun/2025:13:33:38 +0800] "GET /home.php HTTP/1.1" 200 4139 "-" "YisouSpider"


配置文件:
#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient|ClaudeBot|DotBot|SEOkicks|externalagent|python-requests|ImagesiftBot|Barkrowler|SemrushBot|GPTBot))
{
  return 403;
}

#禁止指定UA及UA为空的访问
if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" )
{
  return 403;            
}
发表于 2025-6-23 13:06:21 来自手机 | 显示全部楼层
有没有一种可能,你配置完之后没有reload
发表于 2025-6-23 13:12:04 来自手机 | 显示全部楼层
~和~*,一个区分大小写,一个不区分!^$以这些结尾的UA,因为不是以yisou***结尾,所它能访问!
 楼主| 发表于 2025-6-23 13:20:13 | 显示全部楼层
hanada 发表于 2025-6-23 13:06
有没有一种可能,你配置完之后没有reload

没可能,我每次必然reload
 楼主| 发表于 2025-6-23 13:23:38 | 显示全部楼层
本帖最后由 盖茨 于 2025-6-23 13:25 编辑
奧巴马 发表于 2025-6-23 13:12
~和~*,一个区分大小写,一个不区分!^$以这些结尾的UA,因为不是以yisou***结尾,所它能访问! ...


~是区分大小写,也可写成不区分大小写:~*

但是有点奇怪,我本地复制日志里的UA,在自己浏览器上新建一个设备模拟,是会被403的,好奇怪。

还有一个问题就是,第一个是用括号包裹,第二个是用双引号包裹,这也有啥区别吗?

谢谢
发表于 2025-6-23 13:45:34 | 显示全部楼层
怎么返回403 太仁慈了
丢一个 gzip 的炸弹 让它会去解压去吧 耗它内存
 楼主| 发表于 2025-6-23 14:41:35 | 显示全部楼层
AceSheep 发表于 2025-6-23 13:45
怎么返回403 太仁慈了
丢一个 gzip 的炸弹 让它会去解压去吧 耗它内存

担心惹到疯狗啊。。
发表于 2025-6-23 15:12:48 | 显示全部楼层
AceSheep 发表于 2025-6-23 13:45
怎么返回403 太仁慈了
丢一个 gzip 的炸弹 让它会去解压去吧 耗它内存

牛逼
发表于 2025-6-23 15:14:21 | 显示全部楼层
我宝塔防火墙里UA添加黑名单就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-9-8 04:01 , Processed in 0.064351 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表