反转基因福娃 发表于 5 天前

关于敏感文件或备份 安全设置错误 禁止通过 URL 访问 Vue 项目打包后的 .gz 压缩文件

要禁止通过 URL 访问 Vue 项目打包后的 .gz 压缩文件(如 sc.6abb69d9.css.gz)或其他敏感文件,可以通过 Nginx 设置和 Tomcat 设置双重防护来实现。以下是详细解决方案:
方法 1:通过 Nginx 设置禁止访问 .gz 文件

在 Nginx 的设置文件中(通常是 /etc/nginx/conf.d/your-site.conf 或 /etc/nginx/sites-available/default),添加以下规则:
server {
    listen 80;
    server_name xxx.mrt.cn;

    location ~* \.gz$ {
      deny all;
      return 404;
    }

    # 其他配置(如反向代理到 Tomcat)
    location / {
      proxy_pass http://localhost:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
}
作用:


[*]location ~* \.gz$ 匹配所有 .gz 文件请求。
[*]deny all; 拒绝所有访问,返回 403 Forbidden。
[*]return 404; 可改为直接返回 404(更隐蔽)。
生效方式:
sudo nginx -t    # 检查语法
sudo systemctl reload nginx# 重新加载配置
方法 2:Tomcat 禁止直接访问静态资源

如果 Nginx 只是反向代理,而 .gz 文件实际存放在 Tomcat 的 webapps/ROOT 目次下,可以通过 Tomcat 的 web.xml 限定访问:

[*]编辑 conf/web.xml,在 <web-app> 标签内添加:
<security-constraint>
    <web-resource-collection>
      <web-resource-name>Block gz files</web-resource-name>
      <url-pattern>*.gz</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>none</role-name> <!-- 拒绝所有角色访问 -->
    </auth-constraint>
</security-constraint>

[*]重启 Tomcat:
sudo systemctl restart tomcat
方法 3:Vue 构建时不生成 .gz 文件(推荐)

如果不需要 HTTP 服务器自动提供 .gz 压缩文件,可以在 Vue 的构建设置中禁用 gzip 压缩:

[*]修改 vue.config.js:
module.exports = {
    chainWebpack: (config) => {
      config.plugins.delete('compression'); // 移除 gzip 压缩插件
    }
};

[*]重新构建并摆设:
npm run build
这样构建后的 dist 目次不会生成 .gz 文件,从根本上解决问题。
方法 4:服务器文件体系权限控制

直接限定 Linux 文件体系的访问权限:
# 进入 Tomcat 的静态资源目录
cd /path/to/tomcat/webapps/ROOT/static/css

# 移除 .gz 文件(谨慎操作!)
rm *.gz

# 或修改权限,禁止 Nginx/Tomcat 用户读取
chmod 600 *.gz# 仅所有者可读,其他用户无权限
安全加固建议


[*]隐蔽服务器信息:
在 Nginx 中关闭 Server 头:server_tokens off;

[*]禁用目次列表:
防止目次遍历攻击:location / {
    autoindex off;
}

[*]日志监控:
检查 Nginx 访问日志,排查异常请求:tail -f /var/log/nginx/access.log | grep '\.gz'

最终方案推荐



[*]短期修复:用 Nginx 的 deny 规则(方法 1)快速拦截请求。
[*]恒久解决:修改 Vue 构建设置(方法 3),避免生成不必要的 .gz 文件。
[*]深度防护:联合 Tomcat 安全约束(方法 2)和 文件权限控制(方法 4)。
以上方法可有效防止敏感文件泄露,符合 A5 安全设置错误(敏感信息泄露)的修复要求。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 关于敏感文件或备份 安全设置错误 禁止通过 URL 访问 Vue 项目打包后的 .gz 压缩文件