【发布时间】:2021-11-08 02:52:41
【问题描述】:
我们如何保护 HTML5 localStorage 的内容不被用户篡改?对于 cookie,我们以加密格式存储信息,用于加密的秘密将存储在客户端不知道的服务器中。
但是,在 localStorage 中,信息驻留在客户端,我们将密钥发送给客户端。那么,是否有任何标准方法可以保护 localStorage 中的信息不被用户篡改?
【问题讨论】:
标签: security html local-storage
我们如何保护 HTML5 localStorage 的内容不被用户篡改?对于 cookie,我们以加密格式存储信息,用于加密的秘密将存储在客户端不知道的服务器中。
但是,在 localStorage 中,信息驻留在客户端,我们将密钥发送给客户端。那么,是否有任何标准方法可以保护 localStorage 中的信息不被用户篡改?
【问题讨论】:
标签: security html local-storage
@Mikko Ohtamaa 是对的。使用起来不太安全。但也许您可以使用 sessionStorage 将信息保存到会话结束。从这个site:
关于本地存储和安全性的最终想法
不要将本地存储用于会话标识符。 坚持使用 cookie 并使用 HTTPOnly 和 Secure 标志。
如果 cookie 由于某种原因无法工作,请使用会话存储 当用户关闭浏览器窗口时,它将被清除。
在本地存储中存储敏感数据时要小心。 就像任何其他客户端存储选项一样,此数据可以是 由用户查看和修改。
最后一件事是不要将敏感数据存储在本地存储中......
【讨论】:
您没有保护 localStorage。
来自客户端软件的任何内容都必须是不受信任的。
【讨论】:
对于仍有疑问的人,请查看 SecurityJS.128,它是一个客户端 JavaScript 库,其中一个 API 是 window secureStorage。
这就是它的工作原理:
(async function() {
// anonymous function
// generate the key
const myKey = securityjs.generateKey();
// set the item
secureStorage.setItem("item", "123");
// lock it
secureStorage.lock();
// unlock it
secureStorage.unlock(myKey);
// get the item
secureStorage.getItem("item");
// "123"
})();
【讨论】: