【发布时间】:2016-12-07 19:38:53
【问题描述】:
我正在实现我的第一个用户登录,我在 Stack 上阅读了一些关于 sessions 或 cookies 中存储登录信息的便利性的帖子,但我的主要问题仍然存在:将 userID/userCode 存储在 cookie 中以让用户保持登录状态是否如此不安全?
换句话说,是否可以将 cookie 下载到笔式驱动器上,将其下载到另一台 PC,连接到网站并被识别为已登录?如果是这样,像 Facebook 和亚马逊这样的巨头是如何实施这个系统来避免安全问题的?
那么,是否应该完全避免为此目的使用 cookie 来支持会话(尽管用户必须每次都登录)?
由于我必须收集敏感信息,因此我想构建最安全的系统。
【问题讨论】:
-
由于会话劫持和修改 cookie 的可能性,您应该始终保持谨慎。如果您希望数据安全,切勿以纯文本形式存储任何数据。
-
正如@Hallur 提到的,总是存在一些漏洞。您可以通过交叉检查您的会话来最小化这种情况,确保您无法应对 XSS 攻击等。请记住,其中许多检查可能会给您的页面加载增加相当大的开销
-
@Hallur 当然我可以让 cookie “不可读”对其进行散列处理,但在这种用户登录的情况下,如果目的是存储将由PHP 脚本?换句话说,如果我可以访问 cookie 并且我“窃取”了它,那么它是否可读都是一样的,因为 PHP 脚本读取它的方式总是一样的,不是吗?
-
为什么人们总是试图将数据存储在 cookie 中。您从未阅读过任何隐私声明或法律 cookie 通知吗?你应该。
-
“如果我可以访问 cookie 并且我“窃取”了它,那么它是否可读都是一样的,因为 PHP 脚本读取它的方式总是一样的,不是吗? ” - 是的,但这不是问题。如果您只存储了一个未加密的用户 id,那么我就不必窃取您的 cookie - 我只需要知道您的用户 id,然后我可以发送包含该 id 的我自己的 cookie。
标签: php security session cookies