服务工作者:使用 IndexedDB 缓存 POST 请求 - 安全问题
Posted
技术标签:
【中文标题】服务工作者:使用 IndexedDB 缓存 POST 请求 - 安全问题【英文标题】:Service worker: caching POST requests with IndexedDB - security concerns 【发布时间】:2020-08-30 09:59:10 【问题描述】:如果我错了,请纠正我,但我觉得我读过的每一篇关于服务工作者的文章都只涵盖一个用例:非常简单的“静态”网站。比如“在这里,你可以使用 SW 缓存你的图片,现在你的应用可以离线工作了。结束。”。
嗯...我有一个现有的应用程序,假设它是一个“待办事项列表”:用户登录并可以查看/修改列表。服务器通信基于 POST 请求 (JSON)。
现在,我想让它离线工作:用户应该仍然可以查看列表(这次来自缓存)。 使用 IndexedDB 缓存 POST 请求非常容易,但如何安全呢? 列表可能包含敏感数据,如果未加密,每个人都可以打开 DevTools 并浏览它们。
有什么建议和想法吗?我至少需要某种程度的安全性。 我的第一个 - 不是一个好主意 - 是使用用户的凭据加密缓存的数据,但这不起作用:凭据仅在登录时才知道,并且在页面刷新后丢失。
【问题讨论】:
【参考方案1】:如何使用会话 ID(来自 cookie)加密缓存数据? 如果用户注销或会话(cookie)过期 - cookie 被删除并且解密密钥丢失。
但是,根据this comment:
是的,某些 Firefox 版本似乎会永久保存过期的 cookie。 我刚刚从我的 Firefox 中删除了一些 cookie,这些 cookie 在 4 月到期 2012 年。(不过,有更新的 cookie 具有相同的域名和名称。)
我知道,评论很旧(2013 年),但还是有点担心
【讨论】:
也不起作用,您无法从服务人员访问 cookie:***.com/questions/35447567/…以上是关于服务工作者:使用 IndexedDB 缓存 POST 请求 - 安全问题的主要内容,如果未能解决你的问题,请参考以下文章
懂你网络系列7之浏览器缓存cookie,sessions,localStorage,sessioStoage,indexedDB
IndexedDB浏览器本地存储缓存数据库CookieLocal StorageSession StorageWeb SQL
vue+elementUi+IndexedDB完整代码浏览器本地存储缓存数据库openaddgetAllopenCursorputdeletewindowobjectStore