Nginx 低风险漏洞更新

本文描述了在检查网站时发现的安全隐患,包括X-Content-Type-Options、X-XSS-Protection等重要HTTP头的缺失,并给出了相应的添加建议,以提升网站的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    # 检测到目标 X-Content-Type-Options响应头缺失 这个暂时不开启,不然部分banner无法使用
    #add_header X-Content-Type-Options "nosniff";
    # 检测到目标 X-XSS-Protection响应头缺失
    add_header X-XSS-Protection "1; mode=block";
    # 检测到目标 Content-Security-Policy响应头缺失
    add_header Content-Security-Policy "default-src 'self' http: https://* data: blob: 'unsafe-eval' 'unsafe-inline';child-src 'none' " always;
    # 检测到目标 Referrer-Policy响应头缺失
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    # 检测到目标 X-Permitted-Cross-Domain-Policies响应头缺失
    add_header X-Permitted-Cross-Domain-Policies none;
    # 检测到目标 X-Download-Options响应头缺失
    add_header X-Download-Options noopen;
    # 检测到目标 Strict-Transport-Security响应头缺失
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

### Nginx 空字节漏洞(CVE-2013-4547)分析 #### 成因 Nginx 在处理包含非法字符(如空格和空字节 `\0`)的 URI 请求时,其内部的有限状态机会出现混乱,导致 URI 解析错误。攻击者可以通过构造特定的 URI,如 `/test[0x20]/../admin/index.php`,绕过 Nginx 的访问控制规则,从而实现目录穿越或代码执行。具体而言,当 Nginx 解析此类 URI 时,会将其视为 `/admin/index.php`,即使该 URI 本应被某些安全策略阻止[^4]。 此外,Nginx 默认以 CGI 方式支持 PHP 解析,通过正则匹配设置 `SCRIPT_FILENAME`。当攻击者访问类似 `www.xxx.com/phpinfo.jpg/1.php` 的 URL 时,`$fastcgi_script_name` 会被设置为 `phpinfo.jpg/1.php`,并传递给 PHP CGI。PHP 会将 `phpinfo.jpg` 视为 PHP 文件来解析,从而导致文件上传漏洞[^5]。 #### 影响 此漏洞的影响版本为 Nginx 0.8.41 至 1.5.6。攻击者可以利用此漏洞绕过访问控制,访问受保护的资源,甚至执行任意代码。对于依赖 Nginx 进行 URL 重写和访问控制的应用程序,这种漏洞可能导致严重的安全风险,包括但不限于数据泄露、系统被入侵等[^1]。 #### 修复方案 1. **升级 Nginx**:最直接的修复方法是将 Nginx 升级到 1.5.7 或更高版本,官方已在这些版本中修复了此漏洞[^1]。 2. **配置文件修改**:在 Nginx 配置中添加额外的检查逻辑,确保请求的文件名合法,避免非法字符的解析。例如: ```nginx if ($request_filename ~* (.*)\.php) { set $php_url $1; } if (!-e $php_url.php) { return 403; } ``` 上述配置可以防止 Nginx 将非 PHP 文件解析为 PHP 文件,从而减少攻击面[^3]。 3. **输入验证**:在应用程序层面增加对用户输入的验证,确保 URI 中不包含非法字符,尤其是空字节和空格[^4]。 #### 示例代码 以下是一个简单的 Nginx 配置示例,用于防止非法文件解析: ```nginx location ~ \.php$ { if ($request_filename ~* (.*)\.php) { set $php_url $1; } if (!-e $php_url.php) { return 403; } include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值