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

打印 上一主题 下一主题

主题 1617|帖子 1617|积分 4851

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要禁止通过 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),添加以下规则:
  1. server {
  2.     listen 80;
  3.     server_name xxx.mrt.cn;
  4.     location ~* \.gz$ {
  5.         deny all;
  6.         return 404;
  7.     }
  8.     # 其他配置(如反向代理到 Tomcat)
  9.     location / {
  10.         proxy_pass http://localhost:8080;
  11.         proxy_set_header Host $host;
  12.         proxy_set_header X-Real-IP $remote_addr;
  13.     }
  14. }
复制代码
作用


  • location ~* \.gz$ 匹配所有 .gz 文件请求。
  • deny all; 拒绝所有访问,返回 403 Forbidden。
  • return 404; 可改为直接返回 404(更隐蔽)。
生效方式
  1. sudo nginx -t    # 检查语法
  2. sudo systemctl reload nginx  # 重新加载配置
复制代码

方法 2:Tomcat 禁止直接访问静态资源

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

  • 编辑 conf/web.xml,在 <web-app> 标签内添加:
  1. <security-constraint>
  2.     <web-resource-collection>
  3.         <web-resource-name>Block gz files</web-resource-name>
  4.         <url-pattern>*.gz</url-pattern>
  5.     </web-resource-collection>
  6.     <auth-constraint>
  7.         <role-name>none</role-name> <!-- 拒绝所有角色访问 -->
  8.     </auth-constraint>
  9. </security-constraint>
复制代码

  • 重启 Tomcat:
  1. sudo systemctl restart tomcat
复制代码

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

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

  • 修改 vue.config.js:
  1. module.exports = {
  2.     chainWebpack: (config) => {
  3.         config.plugins.delete('compression'); // 移除 gzip 压缩插件
  4.     }
  5. };
复制代码

  • 重新构建并摆设:
  1. npm run build
复制代码
这样构建后的 dist 目次不会生成 .gz 文件,从根本上解决问题。

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

直接限定 Linux 文件体系的访问权限:
  1. # 进入 Tomcat 的静态资源目录
  2. cd /path/to/tomcat/webapps/ROOT/static/css
  3. # 移除 .gz 文件(谨慎操作!)
  4. rm *.gz
  5. # 或修改权限,禁止 Nginx/Tomcat 用户读取
  6. chmod 600 *.gz  # 仅所有者可读,其他用户无权限
复制代码

安全加固建议


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

最终方案推荐



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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表