全球主机交流论坛

标题: Nginx阻止特定User Agent访问,遇到点问题 [打印本页]

作者: 盖茨    时间: 2025-6-23 01:55
标题: Nginx阻止特定User Agent访问,遇到点问题
起因是我发现配置里的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;            
}

作者: hanada    时间: 2025-6-23 13:06
有没有一种可能,你配置完之后没有reload
作者: 奧巴马    时间: 2025-6-23 13:12
~和~*,一个区分大小写,一个不区分!^$以这些结尾的UA,因为不是以yisou***结尾,所它能访问!
作者: 盖茨    时间: 2025-6-23 13:20
hanada 发表于 2025-6-23 13:06
有没有一种可能,你配置完之后没有reload

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


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

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

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

谢谢
作者: AceSheep    时间: 2025-6-23 13:45
怎么返回403 太仁慈了
丢一个 gzip 的炸弹 让它会去解压去吧 耗它内存
作者: 盖茨    时间: 2025-6-23 14:41
AceSheep 发表于 2025-6-23 13:45
怎么返回403 太仁慈了
丢一个 gzip 的炸弹 让它会去解压去吧 耗它内存

担心惹到疯狗啊。。
作者: fondy    时间: 2025-6-23 15:12
AceSheep 发表于 2025-6-23 13:45
怎么返回403 太仁慈了
丢一个 gzip 的炸弹 让它会去解压去吧 耗它内存

牛逼
作者: 轻功水上漂    时间: 2025-6-23 15:14
我宝塔防火墙里UA添加黑名单就可以了




欢迎光临 全球主机交流论坛 (https://sunk.eu.org/) Powered by Discuz! X3.4