今天突然发现不登录也能访问我的私人用的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