0%

使用 Nginx 禁止某些 UA(User Agent)访问

方式一:直接用 Nginx 的 if 语句配合正则表达式

1
2
3
4
5
6
7
8
9
# 区分大小写匹配
if ($http_user_agent ~ (Antivirx|Arian)) {
return 403;
}

# 不区分大小写匹配
if ($http_user_agent ~* (netcrawl|npbot|malicious)) {
return 403;
}

方式二:使用 map 来代替 if 语句(适合需要禁止较多的 UA)

1
2
3
4
5
6
7
8
9
10
11
12
13
map $http_user_agent $badagent {
default 0;
~*malicious 1;
~*backdoor 1;
~*netcrawler 1;
~Antivirx 1;
~Arian 1;
~webbandit 1;
}

if ($badagent) {
return 403;
}

Nginx 禁止某些UA(User Agent)访问 - 河马的深度解析