发布于2026-07-03 阅读(0)
扫一扫,手机访问
在Nginx中配置防盗爬虫,其实是很多运维同学都会遇到的需求。爬虫越来越多,尤其是那些不带Referer的、恶意刷接口的,甚至伪装成正常用户的爬虫——想要完全防住并不容易,但至少可以通过Nginx层面做一些基础限制。下面就来聊聊几种常见且实用的方案。

ngx_http_referer_module限制访问打开Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-a vailable/yourdomain.com。
在server块中添加以下配置:
location / {
# 允许的域名列表
valid_referers none blocked server_names yourdomain.com www.yourdomain.com;
if ($invalid_referer) {
return 403; # 返回403 Forbidden错误
}
# 其他配置...
}
这段配置的逻辑很简单:只有来自你指定的域名(比如yourdomain.com和www.yourdomain.com)的请求才被放行,其他Referer统统返回403。注意,这里的none表示允许没有Referer的请求(比如直接输入网址),blocked表示允许Referer被防火墙或袋里隐藏的情况。如果你希望更严格,可以去掉这两个参数,但那样可能会误伤正常用户。
ngx_http_xss_clean_module防止XSS攻击另一个思路是,如果你担心爬虫不仅来抓数据,还可能顺手注入恶意脚本,那可以在Nginx层对请求参数做清洗。这就需要用到ngx_http_xss_clean_module。
安装ngx_http_xss_clean_module模块(如果尚未安装)。
在Nginx配置文件中添加以下配置:
load_module modules/ngx_http_xss_clean_module.so;
server {
# 其他配置...
location / {
xss_clean on;
xss_clean_params "arg1,arg2,arg3"; # 指定需要清理的参数
# 其他配置...
}
}
这样,所有传入的指定参数都会被检查和清理,把潜在的XSS payload过滤掉。当然,这个模块不是内置的,需要编译安装。
最后提醒一句:任何配置改动前,务必先在测试环境充分验证,别一上线就把用户挡在门外。
上一篇:Nginx配置中如何实现动静分离
下一篇:Nginx如何配置跨域资源共享
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8