使用会话登录(PHPSESSID)或COOKIES(如果相同)的安全问题。。还是不?

使用会话登录(PHPSESSID)或COOKIES(如果相同)的安全问题。。还是不?,php,authentication,session,cookies,session-cookies,Php,Authentication,Session,Cookies,Session Cookies,我有几个关于会话和cookie的问题,我在互联网上读到,所有人都建议使用会话(为了安全),但是。。在一个会话中保存ID登录(phpsessid)与在一个cookie中保存ID登录不同吗 我测试了这个: 我从网站的登录帐户复制了我的PHPSESSID(cookie) (在chrome中)并将我的PHPSESSID(cookie)插入另一个浏览器(在 opera)使用VPN,我可以在此帐户中访问 这里的安全措施是什么?如果有人可以猜测或劫持我的cookie,PHPSESSID ID是否与我使用coo

我有几个关于会话和cookie的问题,我在互联网上读到,所有人都建议使用会话(为了安全),但是。。在一个会话中保存ID登录(phpsessid)与在一个cookie中保存ID登录不同吗

我测试了这个:

我从网站的登录帐户复制了我的PHPSESSID(cookie) (在chrome中)并将我的PHPSESSID(cookie)插入另一个浏览器(在 opera)使用VPN,我可以在此帐户中访问

这里的安全措施是什么?如果有人可以猜测或劫持我的cookie,PHPSESSID ID是否与我使用cookie保存登录ID相同

我的问题是。。使用像wordpress一样的安全cookie ID、加密ID和在IP和用户代理中签入DB是否更安全

现在,我使用这个: 我创建一个随机ID并保存在一个cookie中(当用户登录成功时) 并检查数据库中是否存在此ID,检查IP(保存在数据库中)和用户_代理(保存在数据库中)是否相等。如果没有,请下次登录


谁能给我一点指引谢谢您阅读。

您应该问自己:“猜测随机生成的随机id有多容易?”

如果你对这个问题的回答是“非常简单”,你应该让它更难猜测。使用UUID或其他形式的安全随机ID

如果你的答案是“相当难”,你就不必为此担心。你所提供的唯一攻击向量是能够猜出一个随机生成的ID。 你可以阅读更多关于“猜测PHPSESSID”的内容


一般来说,不需要检查用户的IP(作为旁注,您可以通过这样做向GDPR中的所有内容开放自己)或他们的用户代理,因为这两种情况在会话生命周期中都可能发生变化。

您应该问自己:“猜测随机生成的随机id有多容易?”

如果你对这个问题的回答是“非常简单”,你应该让它更难猜测。使用UUID或其他形式的安全随机ID

如果你的答案是“相当难”,你就不必为此担心。你所提供的唯一攻击向量是能够猜出一个随机生成的ID。 你可以阅读更多关于“猜测PHPSESSID”的内容


一般来说,不必检查用户的IP(作为旁注,您可以通过这样做向GDPR中的所有内容开放自己)或他们的用户代理,因为这两种情况在会话生存期内都可能发生变化。

关于会话的关键点是,它们是服务器端存储。换句话说,你的程序写任何它认为合适的东西,并且它完全读回它以前写的东西,因为在cookie中发生的信息不能被客户端篡改。此外,信息对客户的眼睛仍然是隐藏的,因此它可以存储机密信息或只是内部无趣的信息。最后,PHP会话允许存储PHP支持的大多数数据类型。cookie只能存储纯文本


会话中的薄弱环节是HTTP是一个无状态协议,因此客户端需要在每个请求中标识自己(与FTP、SSH或SMTP等其他网络协议不同)。早期的实现将在URL本身中传输会话ID。后来改进为仅使用Cookie,并且可以将Cookie配置为仅限于加密连接。但是,是的,如果有什么东西截获了您的HTTP流量并发现了您的会话ID,他可以很容易地模拟您,因为大多数站点不关心实现进一步的检查。然而,这就是为什么现在鼓励使用HTTPS的原因。

会话的关键点在于它们是服务器端存储。换句话说,你的程序写任何它认为合适的东西,并且它完全读回它以前写的东西,因为在cookie中发生的信息不能被客户端篡改。此外,信息对客户的眼睛仍然是隐藏的,因此它可以存储机密信息或只是内部无趣的信息。最后,PHP会话允许存储PHP支持的大多数数据类型。cookie只能存储纯文本

会话中的薄弱环节是HTTP是一个无状态协议,因此客户端需要在每个请求中标识自己(与FTP、SSH或SMTP等其他网络协议不同)。早期的实现将在URL本身中传输会话ID。后来改进为仅使用Cookie,并且可以将Cookie配置为仅限于加密连接。但是,是的,如果有什么东西截获了您的HTTP流量并发现了您的会话ID,他可以很容易地模拟您,因为大多数站点不关心实现进一步的检查。然而,这就是为什么HTTPS现在受到鼓励