一键封禁异常User-Agent请求脚本:高效防护Web安全威胁

2025.5.29 杂七杂八 695

一键封禁异常User-Agent请求脚本:高效防护Web安全威胁

本文详细介绍如何通过一键脚本自动封禁异常User-Agent请求,包含Nginx/Apache双环境实现方案、正则匹配规则优化技巧以及自动化监控部署方法,帮助网站管理员快速阻断恶意爬虫和自动化攻击。

一、异常User-Agent的安全风险

异常User-Agent请求通常表现为以下特征:

  • 伪造浏览器标识的自动化工具
  • 包含SQL注入特征的恶意字符串
  • 非常规设备或爬虫的非常规标识
  • 空白或明显伪造的UA头

二、Nginx环境实现方案

 在nginx.conf的http模块添加
map $http_user_agent $bad_ua {
    default 0;
    "~(wget|curl|python|nikto|scan|bot|spider|baidu|sogou)" 1;
    "~(\n|\r|select|union|eval|base64)" 1;
}

server {
    if ($bad_ua) {
        return 403;
    }
}

三、Apache环境实现方案

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} (wget|curl|python|nikto|scan|bot) [NC]
    RewriteRule . - [F,L]
</IfModule>

四、高级防护策略

  1. 动态黑名单系统:结合fail2ban实现自动封禁
  2. 频率限制:对相同UA的高频请求进行限速
  3. 机器学习检测:使用ModSecurity进行异常UA识别

五、自动化监控脚本

!/bin/bash
 实时监控异常UA请求
tail -f /var/log/nginx/access.log | grep -E 'wget|curl|python|nikto' | 
while read line; do
    ip=$(echo $line | awk '{print $1}')
    iptables -A INPUT -s $ip -j DROP
done

六、最佳实践建议

  • 定期更新UA黑名单规则(建议每周更新)
  • 对封禁IP保留至少30天日志
  • 重要业务系统建议结合WAF使用
  • 白名单机制排除合法爬虫

通过上述方案,网站管理员可以快速构建针对异常User-Agent的多层防护体系,有效降低自动化工具带来的安全风险,同时避免误封正常用户访问。

评论