我使用cookie来存储用户凭据。我有两个问题:
1-是否需要散列cookie?使用例如md5
2-我应该用用户名存储密码还是存储用户名足以验证用户身份?
答案 0 :(得分:3)
用户可以编辑Cookie,作为渗透测试,我会说存储用于身份验证的任何用户特定数据都是一个坏主意。
存储它的最佳方式是在会话中,这是服务器端,数据仅在该用户/连接的范围内。
答案 1 :(得分:1)
不要在Cookie或会话中存储凭据,也不要将凭据存储在数据库中的哈希值之外。
您应该使用的是会话ID cookie。当您致电session_start
时,PHP会自动创建一个。会话将包含与用户标识相关的所有数据,例如user-id(您可能只需要用户ID,仅此而已)。
会话存储在服务器上,因此它们是防篡改的。
Cookie由客户存储,因此它们完全不可靠。将Cookie用于偏好等语言选择或“是的,我看过你的弹出式广告”。
salt + md5
不足以存储密码。使用专门处理密码的内置PHP函数。有关详细信息,请参阅http://php.net/manual/en/function.password-hash.php。