在具有属性(httpOnly和secure = true)的服务器上设置Cookiee时,这是否意味着它只会在服务器和客户端之间的通信期间受到保护,但之后不会受到保护? 换句话说,如果该值最初是在plainText中 - 它也将使用plainText存储在客户端(使用https旅行后) - 使其不安全/易受攻击?
1)密码需要始终加密才能发送(即使使用https)?
2)httpCookiee(带有secure = true)存储在哪里?这个存储访问是受保护的吗?
答案 0 :(得分:2)
您可能不希望存储密码。
您需要的是存储一些“用户已经过身份验证”标记。
毕竟,您应该了解“摘要访问验证”。存储散列数据总是加号。
这个答案太短了,主要是因为这里有太多的可能性 - 以及太多未解决的问题。
处理回归用户:
您可以管理(服务器端)会话数据库。在cookie中,您只存储会话ID。当用户进行身份验证时,您将在其服务器端数据库中存储其状态:“登录”。当他退出时,你改变了DB状态:“注销”。
处理返回用户与“以任何方式存储密码”无关。例如,您可以通过外部身份验证服务(如open-id,twitter,facebook等)对用户进行身份验证,您只能通过某个会话ID或类似内容存储其状态。
浏览器通常可以存储用户名/密码,但这一直应用户责任。当用户只想记住他的密码时,你不应该以任何方式存储它。
为什么您希望将您的应用和安全机制与在Cookie中存储加密密码相混淆 - 从任何角度来看,什么都不是正确的解决方案?
简单流程:
答案 1 :(得分:0)
1)我想是的。因为即使使用安全标志,cookie也会以纯文本形式存储在浏览器缓存中
2)这取决于浏览器和操作系统。对于Mac中的Safari,您可以在〜/ Library / Cookies / Cookies.plist中找到它。您可以使用安全标记但以纯文本形式查看cookie。它可能受到保护,只有所有者才能看到,但在计算机的任何地方都可以使用普通密码永远不是一个好主意
答案 2 :(得分:0)
一旦安全标志设置为true,即使在浏览器关闭后,cookie也将加密存储在客户端中。正如你所说它不安全/易受伤害。
RESP。 1) 密码可以在使用Javascript发送之前加密,但它没有多大意义,因为https正在为您进行加密。
RESP。 2) Cookie存储在浏览器文件夹中。任何人都可以打开文件夹并使用文本编辑器查看cookie。
浏览器将为您处理密码。只需使用< input type =“password”>并且使用SSL足够安全。 并且,不惜一切代价避免在密码中存储密码。