PWA的Cache Storage是否安全?存储位置、跨域访问及加密情况问询
Cache API存储安全相关解答
跨域访问风险
Cache API严格遵循浏览器同源策略,不同域名的缓存存储空间完全隔离,第三方域名无法读取你站点存储的缓存内容。你的同域名下PWA和/api路径的后端服务属于同一源,不会出现跨域越权访问缓存的问题。
实际磁盘存储位置
缓存数据确实存储在用户本地文件系统中,不同浏览器的默认存储路径不同,常见的路径参考如下:
- Windows Chrome:
C:\Users\<系统用户名>\AppData\Local\Google\Chrome\User Data\Default\Cache Storage - macOS Chrome:
~/Library/Application Support/Google/Chrome/Default/Cache Storage - Windows Edge:
C:\Users\<系统用户名>\AppData\Local\Microsoft\Edge\User Data\Default\CacheStorage - Firefox:存储在用户配置目录下的
cache2子目录中,按域名分区存储
加密机制说明
目前所有主流浏览器都没有对Cache API的磁盘存储内容做默认加密,所有缓存内容都是明文存储在上述路径中。如果攻击者获得了用户设备的本地文件系统访问权限,就可以直接读取到所有缓存内容。
如果你的PWA需要缓存敏感数据,建议在存入Cache API之前自行对内容做对称加密,加密密钥不要存储在本地,改为用户登录后从服务端动态获取,同时设置合理的缓存有效期,敏感数据使用完成后主动调用API删除缓存。
内容的提问来源于stack exchange,提问作者Robert Haslinger
相关产品推荐
相关产品推荐

