javascript - 如何检测/避免对我缓存的基于 React 的应用程序的更新?或者如何在缓存失效发生之前检测到它?

标签 javascript reactjs security caching cache-invalidation

我正在用 React 开发一个应用程序,它在客户端进行加密并将加密的内容发送回服务器以进行安全存储(例如考虑在线钱包)。这很有效,因为数据是安全的,以防有人恶意访问数据。但是,如果黑客访问服务器并更改实际的 React 代码以将数据以原始格式而不是加密发送回,这将破坏整个系统。
那么如何强制 React 应用程序只缓存一次,然后在 future 的任何时候,在它拉取应用程序的新版本之前,它会警告用户“有新的更新可用并且他们需要检查 twitter和/或 GitHub 以确保有效性”?
基本上我需要在“缓存失效”尝试发生之前检测它们并警告用户。我怎么能这样做?

最佳答案

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

  • 设置 object.freeze()第一次加载数据后在您的缓存中,然后使用 try/catch检测另一个写入它的尝试。
  • 创建 Proxy对象的
  • 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)
      }
    })
    

    关于javascript - 如何检测/避免对我缓存的基于 React 的应用程序的更新?或者如何在缓存失效发生之前检测到它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63660605/

    相关文章:

    javascript - 如何动态更改Highcharts(具体为HighMaps)的背景颜色?

    javascript - React react-router-dom 将 Prop 传递给组件

    reactjs - React Native 不会填满 iPad 上的窗口

    c# - 获取登录用户

    php - session 劫持和 PHP

    php - 我可以在我的网站上使用指纹扫描仪吗?

    javascript - 将内部作用域变量绑定(bind)到外部作用域 "template"

    java - 如何在 javascript 中动态设置 jquery 多选选项的 selectedText ..?

    javascript - 如何在 JavaScript 中匹配二维数组中的对?

    javascript - 使用 Moment JS 格式转换为相同的日期格式给出无效日期