安全的数据客户端缓存

Secured data client side cache?

本文关键字:缓存 客户端 数据 安全      更新时间:2023-09-26

是否有任何方法可以在客户端缓存安全数据,这样用户就不能修改它,以便在服务器端再次使用它是安全的?

或者,如果用户有任何修改,那么它应该是可用的,但可能标记为非原始数据。

是否有任何方法可以在客户端缓存安全数据,使其不能被用户修改,从而在服务器端再次使用安全数据?

没有一旦数据是客户端本地数据,您就输掉了游戏。

或者,如果用户有任何修改,那么它应该是可用的,但可能标记为非原始数据。

您可以使用只有服务器知道的密钥对此数据进行签名。使用加密签名,任何人都可以验证签名者的身份,但只有拥有私钥的人才能生成"正确"的签名。

简短回答-否。更长的答案-您可能会使用web存储/indexedDB/web SQL数据库,再加上某种加盐散列,稍后检查对象是否没有更改,例如

  1. 服务器端带有salt的哈希对象
  2. 向用户发送对象和哈希
  3. 从用户处获取对象和散列
  4. 再次散列从用户那里得到的对象,并检查散列是否等于从用户那里获得的散列

由于客户端的存储仅限于-websql(低支持)localStorage/sessionStorage("argued support")、indexedDB(低支持"),当然还有cookies都很容易访问,因此无法确保客户端存储的数据的安全。即使您使用某种JS方法加密数据,该方法也可能被黑客发现。服务器端是使用某种HMAC来保护数据安全的唯一真正方法。