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

What are all the methods to delete local-storage data?

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


我正在构建一个使用 HTML-local-storage 来替换 PHP 会话和 cookie 的网络应用程序。

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

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

我的问题是: 1)安全问题是什么 2)有没有更好的方法?我不想使用会话或 cookie。

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

本地存储是一种旨在替代两者的解决方案。本地存储用于存储客户端数据。 Cookie 用于在 HTTP 级别识别客户端。 PHP 会话用于在服务器端存储数据,通常由 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 来防止人们在传输过程中摆弄页面。

更好的方法是使用具有循环会话 ID 的会话。 "password" 成为会话 ID,它会随着每个请求而变化。这比期望来自很少更改的用户的弱密码要安全得多。实际用户的用户名和密码仅通过网络发送一次。