gpt4 book ai didi

javascript - 删除本地存储数据的方法有哪些?

转载 作者:行者123 更新时间:2023-12-02 16:05:58 33 4
gpt4 key购买 nike

我的核心问题是有哪些可能的方法可以从客户端浏览器中删除window.localStorage数据(而不是window.sessionStorage)。我知道的一种方法是转到客户端控制台并输入 localStorage.clear()

<小时/>

我正在构建一个 Web 应用程序,它使用 HTML-local-storage 来替换 PHP session 和 cookie。

我有一个网络应用程序可以执行以下操作:

  1. 用户向服务器请求网页
  2. 服务器使用 JavaScript 响应页面以删除客户端的本地存储数据(电子邮件和密码)。密码实际上是一个 GUID 字符串。
  3. 然后,JavaScript 脚本将电子邮件和密码作为后请求发送到服务器。如果用户是新用户,则电子邮件和密码变量可以为空;如果用户是老用户,则可以包含值。
  4. 服务器检查用户是否存在。
  5. 如果用户不存在,则服务器发送登录页面
  6. 如果用户存在,则服务器发送请求的页面
  7. 一旦用户准备好开始,每次用户从网络服务器请求任何网页时,都会发生两件事:1)每次用户请求页面时,请求将包含用户的本地存储数据(电子邮件和密码)2)每次用户请求页面时,服务器都会查询数据库以检查用户是否存在。

我的问题是:1)有哪些安全问题2)有更好的方法吗?我不想使用 session 或 cookie。

最佳答案

I'm building a web app that uses HTML-local-storage to replace PHP sessions and cookies.

本地存储是一个旨在取代两者的解决方案。本地存储用于存储客户端数据。 Cookie 用于在 HTTP 级别识别客户端。 PHP session 用于在服务器端存储数据,通常由 cookie 进行键控。

The password is actually a GUID string.

GUID 并不是真正随机的。根据所使用的算法,GUID 的一部分是生成的服务器的 MAC 地址。接下来,还使用时间戳。你只剩下不多的熵了。另请参阅:Are GUIDs good passwords?

The JavaScript script then sends as a post-request with the email and password to the Server. ...

Every time the user requests a page, the request will contain the user's local storage data (email and password)

像这样通过线路发送密码的原因是,您为攻击者提供了可预测且频繁的凭据传递。至少,这必须通过安全通道 (HTTPS) 完成。但到那时,您的安全性并不可怕。

诀窍是阻止其他人访问本地存储。请务必注意页面上包含的脚本。 (例如,如果您包含一些分析或广告脚本,它将可以访问本地存储数据。)

再次强调,使用 HTTPS 来防止人们篡改传输中的页面。

更好的方法是使用具有轮换 session ID 的 session 。 “密码”成为 session ID,并且它会针对每个请求而更改。这比期望很少更改的用户提供弱密码要安全得多。实际用户的用户名和密码仅通过线路发送一次。

关于javascript - 删除本地存储数据的方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30745291/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com