Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Cookies安全_Php_Security_Session_Cookies - Fatal编程技术网

Php Cookies安全

Php Cookies安全,php,security,session,cookies,Php,Security,Session,Cookies,我正在实现我的第一个用户登录,我已经在Stack上读到了一些关于在会话或cookies中存储登录信息的便利性的帖子,但我的主要问题仍然存在:将用户ID/用户代码存储在cookie中让用户保持登录是否如此不安全 换句话说,是否可以将cookie下载到笔驱动器上,下载到另一台PC上,连接到网站并被识别为已登录?如果是这样的话,像Facebook和亚马逊这样的巨头是如何实现这个系统来避免安全问题的 那么,是否应该完全避免使用cookie进行会话(尽管用户每次都必须登录) 由于我必须收集敏感信息,我想建

我正在实现我的第一个用户登录,我已经在Stack上读到了一些关于在会话cookies中存储登录信息的便利性的帖子,但我的主要问题仍然存在:将用户ID/用户代码存储在cookie中让用户保持登录是否如此不安全

换句话说,是否可以将cookie下载到笔驱动器上,下载到另一台PC上,连接到网站并被识别为已登录?如果是这样的话,像Facebook和亚马逊这样的巨头是如何实现这个系统来避免安全问题的

那么,是否应该完全避免使用cookie进行会话(尽管用户每次都必须登录)

由于我必须收集敏感信息,我想建立一个最安全的系统。

安全变体: 在Cookie中存储会话ID(32-64个符号,随机字符串)

按会话ID(存储在Cookie中)打开会话存储(存储在服务器上,不可供用户访问)并使用它(您可以将用户ID |令牌或其他操作写入会话存储)

在PHP中-请参阅$\u会话和$\u COOKIE


PHP(7+):PHP.ini参数-session.sid_length(设置会话id字符串长度)

由于会话劫持和修改cookie的可能性,您应该始终保持谨慎。如果您希望数据保持安全,请不要以纯文本形式存储任何数据。正如@Hallur提到的,总是存在一些漏洞。您可以通过交叉检查会话、确保禁用XSS攻击等方式将此最小化。如果不考虑这些检查,可能会给您带来相当大的开销pageloads@Hallur当然,我可以让cookie对其进行“不可读”的散列,但是在这个用户登录的例子中,如果目标是存储将由PHP脚本检查的userdID/代码,那么它不是无用的吗?换句话说,如果我有权访问cookie,并且我“偷”了它,那么它是否可读也是一样的,因为PHP脚本读取它的方式总是一样的,不是吗?为什么人们总是试图在cookie中存储数据。您是否从未阅读过任何隐私声明或法律声明?你应该。“如果我有权访问cookie,并且我“偷”了它,那么它是否可读都是一样的,因为PHP脚本读取它的方式总是一样的,不是吗?”-是的,但这不是问题所在。如果你只存储了一个未加密的用户id,那么我就不必偷你的cookie——我只需要知道你的用户id,然后我就可以发送我自己的包含该id的cookie;虽然我不理解
随机字符串
部分随机字符串-具有固定长度和随机符号的字符串。。。。为新会话生成随机字符串-此字符串将作为会话id。