Nginx 防盗链、防刷、防CC攻击配置
阅读:14 2025-07-23
本文深入讲解了如何利用 Nginx 配置实现防盗链、防刷和防CC攻击的有效手段,帮助网站防止资源被恶意盗用、减少恶意请求,提高服务器安全性和稳定性。内容涵盖基础配置示例及进阶策略,适合运维和安全工程师参考。本文来自码农资讯网,专注运维安全与性能优化。
一、防盗链配置
防盗链是指防止别人网站直接引用你网站的图片、视频等资源,浪费带宽资源。
示例配置:
location /images/ { valid_referers none blocked codesou.cn *.codesou.cn; if ($invalid_referer) { return 403; } }
valid_referers
定义允许的来源,none
允许无来源(直接访问),blocked
允许Referer被屏蔽的请求。$invalid_referer
变量为真时,拒绝访问(403)。
二、防刷配置
防刷指防止恶意用户或爬虫大量请求接口,造成资源浪费。
1. 限速(limit_req)
http { limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; server { location /api/ { limit_req zone=one burst=20 nodelay; proxy_pass http://backend_api; } } }
limit_req_zone
定义了每个 IP 的请求频率(此例每秒10个请求)。burst
允许突发请求数,超过立即限速拒绝。nodelay
禁止排队请求,超过直接拒绝。
三、防CC攻击配置
CC攻击是指攻击者通过大量短时间内的请求耗尽服务器资源。
1. 限连接数(limit_conn)
http { limit_conn_zone $binary_remote_addr zone=addr:10m; server { location / { limit_conn addr 10; proxy_pass http://backend; } } }
每个IP最多保持10个并发连接,超出拒绝。
2. 结合限速和限连接
http { limit_conn_zone $binary_remote_addr zone=addr:10m; limit_req_zone $binary_remote_addr zone=req_limit:10m rate=5r/s; server { location / { limit_conn addr 10; limit_req zone=req_limit burst=10 nodelay; proxy_pass http://backend; } } }
四、其他防护手段
验证码:对高频接口结合验证码防止自动化攻击。
黑名单:使用
deny
规则封禁恶意 IP。防火墙:结合硬件或云端防火墙过滤异常流量。
日志监控:实时分析日志,及时发现异常请求。
五、总结
通过合理配置 Nginx 的防盗链、防刷和防CC策略,能够有效保护网站资源,防止恶意攻击和流量浪费,保障网站稳定运行。建议结合业务特点调整策略参数,实现最佳防护效果。
声明
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!