商店用户在本地存储中加密了PW吗?

时间:2010-07-04 07:38:12

标签: javascript web-applications authentication

我正在为我工​​作的100位用户编写一个网络应用程序。它可以在互联网上访问,而不仅仅是我们的内部网。许多用户都是不熟练的用户,但大多数人都使用Chrome,因为这是笔记本电脑上默认使用的浏览器。

要使用网络应用程序进行身份验证,这是一个潜在的计划:

  1. 用户输入密码
  2. 密码已发送至服务器
  3. 对密码进行哈希处理并与存储的哈希进行比较
  4. 如果密码正确,则浏览器会将密码存储在本地存储中
  5. 如果用户会话cookie已过期,javascript会在第一个视图上发布存储的密码,以便用户无需重新进行身份验证
  6. 这是个好主意吗?

4 个答案:

答案 0 :(得分:3)

这个帖子中存在很多关于存储密码和本地存储与cookie的错误信息。

首先,本地存储不比将用户密码存储在cookie中安全。事实上,它实际上更安全,因为本地存储中的数据永远不会发送到服务器,除非明确要求发送(cookie,这就是为什么在其中存储密码不安全)。

这意味着您至少可以确保密码只能通过HTTPS发送。

话虽如此,对于一些用户来说,不必登录的便利性非常好。如果您想要更安全,最好的办法是使用某种类型的客户端加密来存储密码。

否则,请仔细考虑您正在处理的信息类型。更重要的是什么?可用性还是安全性?这是银行信息吗?黑客可以使用用户密码造成什么类型​​的损害?

也没有安全的方法来做“记住我”,所以上面的帖子是完全错误的。请记住,我使用的cookie最多,与本地存储一样安全。

归结为偏好和需求。也许给用户选择?

可以使用本地存储或cookie来实现以下类型的记忆。 What is the best way to implement "remember me" for a website?

答案 1 :(得分:2)

如果要为用户存储密码,为什么还要进行身份验证呢?

您如何确保使用其计算机的其他人无法访问您的网站?

密码是关于某人与您分享秘密,通过该密码他们告诉您他们是他们所声称的人(身份验证) - 不再需要现在重新进行身份验证,然后使身份验证方案毫无用处。 / p>

答案 2 :(得分:2)

我不认为您应该在客户端存储用户的密码以实现您的目标。它可以通过cookie完成。
因此假设用户已经过身份验证,那么也许你可以制作一个可以在他们的机器上停留几周的cookie,这将作为他们的通行证。
不建议存储密码(太非加密)。

答案 3 :(得分:2)

这没有多大意义。听起来服务器不支持“记住我”,而您正试图使用​​客户端添加它。为什么不在服务器上支持它?有很多关于设置它的现有教程和问题(尝试this search),但它基本上意味着有一个特殊的登录cookie,其中包含一个随机生成的值(由服务器跟踪)和一个长(可能是一对)几周,而不是永远)到期。存储密码,即使是哈希,如果有人获得对数据库的访问权限,也会使用户无限期地(直到密码被更改)重放攻击。