使用会话和 cookie 中的密钥保护会话?

Protect the session with the key in the session and in the cookie?

我正在寻找一种方法来保护包含重要信息的 php 会话。对于 phone 上的人来说,使用 IP 验证不是一个好主意。这就是为什么我认为在会话和经典 cookie 中存储随机生成的密钥可能是明智的。然后每隔 x 分钟检查两个密钥是否匹配。这是一个好主意吗?我在搜索中没有找到任何关于此的信息。 感谢您的反馈意见, 杰斯维尔

部分是个好主意。

通常使用(个人)帐户和密码(密钥)来保护会话就足够了。帐户名不应像 'admin' 或 'root' 那样过于通用,密码应包含足够的 entropy,这会使密码难以预测(也难以记住,因此使用密码管理器).

通过 JavaScript 添加额外的 crypto safe key 的一个原因是为了防止跨站点请求伪造 (CSRF)。密钥只为 JS 上下文所知,并且也存储在会话中。然后 CSRF 令牌必须与每个 HTTPS 请求一起发送,并且它必须与会话中的值匹配,否则请求必须被拒绝。

您可以阅读所有关于 this and other prevention mechanisms on the OWASP 作弊 Sheet 系列网站。

内置会话管理是比您自己编写并管理 cookie 更成熟的解决方案。然后你必须担心会话过期等问题

您可以通过存储新会话的 IP(如果为空)添加额外的安全层,然后在所有后续请求中验证会话的 IP 是否与用户的 IP 匹配。

这样,如果session过期或者用户更换网络,可以请求用户重新认证。

快速 link 常见会话管理漏洞及其解决方法 https://krify.co/session-management-vulnerabilities-security-testing/