5

我正在用 React 开发一个应用程序,它在客户端进行加密并将加密的内容发送回服务器以进行安全存储(例如考虑在线钱包)。这很有效,因为数据是安全的,以防有人恶意访问数据。但是,如果黑客访问服务器并更改实际的 React 代码以将数据以原始格式而不是加密格式发送回,这将破坏整个系统。

那么如何强制 React 应用程序只缓存一次,然后在未来的任何时候,在它拉取应用程序的新版本之前,它会警告用户“有新的更新可用并且他们需要检查 twitter和/或 GitHub 以确保有效性”?

基本上我需要在“缓存失效”尝试发生之前检测它们并警告用户。我怎么能这样做?

4

1 回答 1

2

您可能需要考虑的几个选项:

  • object.freeze()首次加载数据后在缓存上设置,然后用于try/catch检测另一次写入尝试。

  • 创建对象的代理

const cache = Proxy({
  isSet: false,
  data: {}
}, {
  set(obj, prop, value) {
    if (prop === 'isSet') throw new ReferenceError()
    if (obj.isSet) throw new Error('Cache already set')
    obj.isSet = true
    return Reflect.set(...arguments)
  }
})
于 2020-09-07T16:41:59.460 回答