php,有没有一种安全的方法将密码存储在cookie中?

php,有没有一种安全的方法将密码存储在cookie中?,php,cookies,passwords,Php,Cookies,Passwords,有没有一种安全的方法可以在php中的cookies中存储密码 还是不推荐 谢谢用户可以随意更改cookies。如果您想在PHP中“信任”数据,则需要将其存储在服务器上,而不是用户的机器上。Cookie还可以通过XSS攻击和浏览器漏洞(实用但依赖于另一个安全漏洞)被拦截,此外还可以在网上嗅出它(更理论化,但在这个方案中总是一个缺陷)。一般不建议这样做,但可能。您可以使用扩展名加密cookie的内容 [编辑2018年8月]此扩展不再可用。不建议使用。理想情况下,cookie只是一个唯一的标识符,服务

有没有一种安全的方法可以在php中的cookies中存储密码

还是不推荐


谢谢

用户可以随意更改cookies。如果您想在PHP中“信任”数据,则需要将其存储在服务器上,而不是用户的机器上。Cookie还可以通过XSS攻击和浏览器漏洞(实用但依赖于另一个安全漏洞)被拦截,此外还可以在网上嗅出它(更理论化,但在这个方案中总是一个缺陷)。

一般不建议这样做,但可能。您可以使用扩展名加密cookie的内容


[编辑2018年8月]此扩展不再可用。

不建议使用。理想情况下,cookie只是一个唯一的标识符,服务器可以将其用作维护所需数据的数据库表(或其他结构)的索引

可以在cookie中对数据进行编码,但我不会为任何敏感的事情这样做


说到密码,我个人的意见是根本不应该存储它们。只应存储密码散列。

可以将密码散列到cookie中,并对照数据库中的散列检查该散列。这在理论上是安全的。(你是在散列,不是吗?用盐?如果有人闯入你的数据库,而你没有,你所有的用户都将完蛋。)


不管怎样,它仍然不被推荐。总体而言,将信息(即使是散列)公开是一个坏主意,因为自己存储数据并将其绑定到一个通用会话ID是一件相对简单的事情,该ID不向任何可能窃取该cookie的人提供任何关于实际密码的信息
$\u SESSION
使之非常简单。

您可以使用sha1()或md5()散列cookie的数据,但最好的方法是使用SESSION存储用户的数据。

不建议这样做…

。。。即使是加密的。将这些信息存储在客户机上,使他们有机会比较cookies,以期解密。更糟糕的是,他们可能嗅到别人的饼干,然后伪装成那个用户

建议用户通过安全连接登录,并发送会话cookie作为响应。会话cookie包含一个会话id,PHP将自动将该id映射到服务器上的会话文件。然后可以在会话中存储用户id。短时间后,会话将过期

会话由PHP自动管理,您应该利用它


关于如何使用PHP会话。

这是个坏主意。你为什么要这样做?你能阐明你的目的吗?你想干什么?也许有更好的方法来做你想做的事。不,我对这个很陌生,你知道有关于哈希的好信息链接吗?@Adamski-最近我写了一篇关于哈希的教程。它涵盖了SQL注入并描述了盐和胡椒的使用。公平地说,SessionID本身就是cookies。如果他们可以嗅探加密密码并进行重播攻击,他们可以嗅探会话ID并进行重播攻击。为了实现真正的安全性,您需要基于HTTPS的身份验证。对于那些实际上不需要真正安全的东西(比如:你家的前门。当然,选择它是可能的,但你只需要一些进入的障碍物)。。。会话变量很好。真的是R5788。但与包含密码的永不更改的cookie相比,使用频繁过期的会话大大减少了嗅探的机会。比如说,如果他正在编写一个访问银行账户的应用程序,那么整个会话都应该使用HTTPS。当然,这种技术也可以应用于包含密码的cookies。加密cookie并在散列之前附加当前日期/时间,您将获得类似的安全级别。不过,总体而言,在PHP中,会话的使用更容易,并且仍然不能真正保护应用程序。(同样,需要HTTPS)。我的论点更像是一种形式,不管怎样,我同意会话是最简单的方式。