当前位置: 首页 > news >正文

关于敏感文件或备份 安全配置错误 禁止通过 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 限制访问:

  1. 编辑 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>
  1. 重启 Tomcat:
sudo systemctl restart tomcat

方法 3:Vue 构建时不生成 .gz 文件(推荐)

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

  1. 修改 vue.config.js
module.exports = {chainWebpack: (config) => {config.plugins.delete('compression'); // 移除 gzip 压缩插件}
};
  1. 重新构建并部署:
npm run build

这样构建后的 dist 目录不会生成 .gz 文件,从根本上解决问题。


方法 4:服务器文件系统权限控制

直接限制 Linux 文件系统的访问权限:

# 进入 Tomcat 的静态资源目录
cd /path/to/tomcat/webapps/ROOT/static/css# 移除 .gz 文件(谨慎操作!)
rm *.gz# 或修改权限,禁止 Nginx/Tomcat 用户读取
chmod 600 *.gz  # 仅所有者可读,其他用户无权限

安全加固建议

  1. 隐藏服务器信息
    在 Nginx 中关闭 Server 头:
    server_tokens off;
    
  2. 禁用目录列表
    防止目录遍历攻击:
    location / {autoindex off;
    }
    
  3. 日志监控
    检查 Nginx 访问日志,排查异常请求:
    tail -f /var/log/nginx/access.log | grep '\.gz'
    

最终方案推荐

  • 短期修复:用 Nginx 的 deny 规则(方法 1)快速拦截请求。
  • 长期解决修改 Vue 构建配置(方法 3),避免生成不必要的 .gz 文件。
  • 深度防护:结合 Tomcat 安全约束(方法 2)和 文件权限控制(方法 4)。

以上方法可有效防止敏感文件泄露,符合 A5 安全配置错误(敏感信息泄露)的修复要求。

相关文章:

  • 网络结构及安全科普
  • 机器学习-08-推荐算法-协同过滤
  • SQL问题分析与诊断(8)——分析方法2
  • 常用 SQL 转义符的总结
  • 【目标检测】目标检测综述 目标检测技巧
  • 利用人工智能(AI)增强IT运营,提高IT管理效率
  • 使用若依二次开发商城系统-2
  • 【sylar-webserver】重构日志系统
  • 布尔差分法解析:从逻辑导数到电路优化
  • 链式栈和线性栈
  • 服务器在国外国内用户访问慢会影响谷歌排名吗?
  • gnome中删除application中失效的图标
  • (三十)安卓开发中的MVP模式详解
  • 四种阻抗匹配的方式
  • C#—Lazy<T> 类型(延迟初始化/懒加载模式)
  • [wifiI]CCA
  • qemu构建arm环境(AI生成)
  • 用74HC595芯片就可做一个SPI组件
  • 【NLP 68、R-BERT】
  • C 语言开发问题:使用 <assert.h> 时,定义的 #define NDEBUG 不生效
  • 全总:五一拟表彰全国劳模先进工作者2426名,盛李豪入选
  • 宇树的任务已经完成?王兴兴也在等待行业拐点
  • “中国共产党的故事——习近平新时代中国特色社会主义思想在重庆的实践”重庆经贸推介会成功举办
  • 87岁老人花3万多做“血液净化”延年益寿?医院“张主任”:我那是善意的欺骗
  • 大国重器飞天背后,有一位上海航天的“老法师”
  • 经济日报金观平:拥抱中国就是拥抱确定性