NiceLeeのBlog 用爱发电 bilibili~

一个低级问题:CDN缓存暴露了我的加密配置页😳

2021-09-10
nIceLee

阅读:


今天突然发现不登录也能访问我的私人用的Web应用页面,人傻了。。。

前言

  • 简单来说,是这么回事:
    • 私人用的Web应用,处理一些杂物。
      具体实现是白嫖的serverless云函数 + 静态资源。
      使用HTTPS + Basic Authentication + cookies鉴权认证。

    • 然后,今天突然发现不登录也能访问我的私人用的Web应用页面。。。 还好仅仅是可能暴露了页面和操作接口,具体增删改等操作仍需鉴权。

    • 排查了很久,对我的代码鉴权各种检查,就是发现不了问题。
      本地部署表现正常,但是远程deploy了很多遍,就是解决不了这个问题。

    • 瞅着在vercel上看看是不是配置有点问题,因为某种原因,暂时换了个姿势,结果又行了。。。
      这种不同区域表现不一样,不就是CDN的问题么。
      一检查还真是,暴露的页面,返回的headers基本清一色的:

        Cache-Control: public, max-age=xxxxxx
      

内容

  • 关于Cache-Control头部,具体可以看mozilla的这篇文档
  • 解决方案:
    更换头部,严格一点直接no-store也可以  
    Cache-Control: private, max-age=0, no-cache
    Cache-Control: private, max-age=0, must-revalidate
    Cache-Control: no-store
    

内容
隐藏