|
|
1
23
何苦?我不会对敏感数据使用这种技术。但是,它与常规会话结合使用是非常有用的——您可以为客户机提供一个具有常规会话ID的cookie,还可以在每个页面上包含应用程序需要的所有键/值对。这样,您就可以避免为每个页面请求访问会话存储。 您的目标应该是保持数据量非常紧凑,因为它将与每个请求一起发送。 考虑到这一点,接下来…… 用哈希签名数据如果数据不敏感,可以使用 sha1 由键/值对和共享秘密组合而成的哈希。例如
现在给客户机一个包含所有值和哈希的cookie。您可以在显示cookie时检查哈希。如果根据客户机提供的值计算的哈希值与预期的哈希值不匹配,则说明这些值已被篡改。 加密敏感数据对于敏感数据,您需要加密这些值。退房 mcrypt 提供大量密码功能的扩展。 偷饼干关于cookie窃取,如果您将用户凭据放入cookie并信任它,那么获得该cookie的人可以模仿该用户,直到更改密码。一个好的实践是记住如何对用户进行身份验证,并且只有当用户明确登录时才授予某些特权。例如,对于一个论坛,您可以让某人发布,但不能更改他们的帐户详细信息,如电子邮件地址。 “自动登录”cookie还有其他技术,包括为此类cookie提供一个只允许使用一次的令牌值。 Here's a good article 在那个技术上。 您还可以考虑将客户机IP包含在签名的cookie中,如果它与呈现cookie的IP不匹配,您可以让他们重新登录。这提供了更多的保护,但不适用于那些明显IP地址不断变化的人。您可以将其作为可选功能,并为用户提供退出的方法。只是一个懒散的想法,我还没有看到它在实践中完成:) 有关解释会话盗窃、劫持和固定的好文章,请参阅 Sessions and Cookies 它还提供了一些可以尝试的技术,例如使用用户代理头作为附加签名。 |
|
|
2
15
我做的 CookieStorage 正是为了这个目的。所有存储的值都通过ripemd160散列(并随时间变化)与您的私钥安全签名,并且可以选择使用rijndael256加密。 每个值都与时间戳一起存储,时间戳是可检索的。
Signed example
.
如果愿意,可以使用您选择的散列/加密/解密函数。 |
|
|
3
0
用PHP签名的cookie
这个问题的其他答案有点过时。php 5.2添加了
将此参数设置为true还将禁用使用其他基于浏览器的工具(如chrome的devtools)编辑此cookie的功能。为了使签名的cookie更加安全,我强烈建议缩小其使用的路径或域范围。您可以使用
为什么要使用签名的cookie? 事实上,在某些特定情况下,签名的cookie很有用,而其他方法(如会话)则不有用。例如,假设所讨论的网站/应用程序使用负载均衡器来提高性能。现在,我们还假设负载均衡器有多个物理服务器,从中提供文件,而粘性会话选项不可用。在这种情况下,签名cookie实际上是在PHP中保存状态的唯一安全方法。 |
|
|
Erik · PHP:确定会话过期时间 1 年前 |
|
|
xms · PHP HTTPOnly Cookie及其对会话的影响 1 年前 |
|
|
Tunahan Keklik · 如果用户仍在网站上时会话过期怎么办 1 年前 |
|
|
J.H · Nestjs服务器在Vercel部署一段时间后自动重新加载 1 年前 |
|
|
Michael Ding · Rails上的默认会话到期问题 1 年前 |
|
|
Patrick Visi · Zitadel日常创建服务用户 2 年前 |
|
|
newbie_php · php会话值丢失 2 年前 |