【问题标题】:Is there is any way to detect if the user removed any item from localstorage有什么方法可以检测用户是否从本地存储中删除了任何项目
【发布时间】:2018-12-18 06:53:25
【问题描述】:

我正在使用 reactJS 开发一个 Web 应用程序,并且我正在使用本地存储来存储临时数据,如果这些数据中的任何一个从本地存储中删除,我想注销用户。

【问题讨论】:

  • 欢迎来到 StackOverflow Nasser!这个问题非常广泛,因此很难有人帮助您。请附上您目前编写的代码并阅读How do I ask a good question
  • 要检查其中的 any 是否被删除,您首先必须知道“全部”是从什么开始的 - 以及您想从哪里开始存储那个信息……?
  • 实际上,您只在应用加载时从本地存储中获取数据。然后你使用商店来保存你的数据。由于用户不能直接更改商店,因此用户没有机会操纵数据。这样您就可以在开始时应用检查。
  • @Fawaz 当然,即使使用简单的内置工具,用户也可以修改本地存储,例如chrome 开发者工具栏。我认为这不是为了防止操纵。但可能正确的错误处理应该使这变得多余。
  • @trixn by stores 我指的是减速器,我的错。

标签: javascript reactjs security web


【解决方案1】:

来自MDN

使用 StorageEvent 响应存储更改

StorageEvent 每当对 存储对象(请注意,不会为 sessionStorage 触发此事件 变化)。这不适用于进行更改的同一页面 — 这确实是域上其他页面使用存储的一种方式 同步所做的任何更改。其他域的页面无法访问 相同的存储对象。

在活动页面(see events.js) 上,唯一的 JavaScript 如下:

window.addEventListener('storage', function(e) {  
  .....
});

【讨论】:

  • @NasserAlhatlan 如果您觉得有用,请接受答案
【解决方案2】:

当本地存储发生变化时,StorageEvent 将被触发。您可以收听该事件:

window.addEventListener('storage', function(e) {  
    // handle change
});

但你不能最终阻止用户操纵本地存储。这只能是一种方便的操作,但不能提高安全性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 2021-11-09
    • 1970-01-01
    • 2016-03-20
    • 2019-01-23
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多