插件窝 干货文章 Nginx URL安全策略编写指南

Nginx URL安全策略编写指南

Nginx header 安全 location 601    来源:    2025-04-20

Nginx URL安全策略编写指南

作为IT工程师,我将为您详细介绍如何为Nginx配置全面的URL安全策略,以保护您的Web应用免受常见攻击。

基础安全配置

1. 隐藏Nginx版本信息

server_tokens off;

2. 限制HTTP方法

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
    return 405;
}

3. 防止目录遍历

location ~* \.(php|pl|py|jsp|asp|sh|cgi)$ {
    deny all;
    return 403;
}

输入验证策略

1. 过滤特殊字符

location / {
    # 防止SQL注入
    if ($query_string ~* "union.*select.*\(") {
        return 403;
    }

    # 防止XSS攻击
    if ($args ~* "<script|<SCRIPT>|javascript:|alert\(") {
        return 403;
    }

    # 防止路径遍历
    if ($request_uri ~* "\.\./|\.\.\\|~|//") {
        return 403;
    }
}

2. 限制URL长度

http {
    large_client_header_buffers 4 8k;
    client_header_buffer_size 1k;
    client_body_buffer_size 8k;
}

访问控制策略

1. 限制敏感文件访问

location ~ /\.(ht|git|svn) {
    deny all;
}

location ~* ^/(config|database|logs)/ {
    deny all;
}

2. IP白名单控制

location /admin/ {
    allow 192.168.1.0/24;
    allow 10.0.0.1;
    deny all;
}

内容安全策略(CSP)

add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://trusted.cdn.com; img-src 'self' data:; style-src 'self' 'unsafe-inline'; frame-ancestors 'none';";

其他安全头设置

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "no-referrer-when-downgrade";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

速率限制

limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

server {
    location / {
        limit_req zone=one burst=20 nodelay;
    }
}

日志记录

log_format security '$remote_addr - $remote_user [$time_local] '
                   '"$request" $status $body_bytes_sent '
                   '"$http_referer" "$http_user_agent" '
                   '$request_time $upstream_response_time '
                   '$http_x_forwarded_for';

access_log /var/log/nginx/security.log security;

实施建议

  1. 分阶段部署:先在测试环境验证配置,再部署到生产环境
  2. 监控影响:部署后监控错误日志和访问模式变化
  3. 定期审查:每季度审查安全策略,根据新威胁调整配置
  4. 结合WAF:对于高安全需求场景,建议结合专业WAF使用

以上配置可根据您的具体应用需求进行调整。建议在实施前充分测试,确保不会影响正常业务功能。