首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP持久化登录无需担心偷取cookie

PHP持久化登录无需担心偷取cookie
EN

Stack Overflow用户
提问于 2015-09-19 10:52:21
回答 1查看 489关注 0票数 2

我对查尔斯·米勒的文章“持久的Login Cookie最佳实践”有点困惑,因为我不明白这些代码是如何防止别人窃取cookie并登录到另一台计算机的。

我看到并阅读了以下主题:

  1. https://stackoverflow.com/a/244907/3355243
  2. https://stackoverflow.com/a/30135526/3355243
  3. https://paragonie.com/blog/2015/04/secure-authentication-php-with-long-term-persistence#title.2

在所有这些内容中,它都解释了如何实现更安全的登录系统,尽管我不知道它如何防止窃取cookie、将粘贴复制到控制台并使用它登录,即使处理两个不同的字段(串联/选择器和令牌)。

代码语言:javascript
复制
document.cookie="theCookieNameFromWebsite=theCookieValueFromVictim";

paragonie.com链接说:

代码语言:javascript
复制
CREATE TABLE `auth_tokens` (
    `id` integer(11) not null UNSIGNED AUTO_INCREMENT,
    `selector` char(12),
    `token` char(64),
    `userid` integer(11) not null UNSIGNED,
    `expires` datetime,
    PRIMARY KEY (`id`)
);

自动登录算法如下所示:

  1. 从令牌中分离选择器。
  2. 获取给定选择器的auth_tokens中的行
  3. 使用SHA-256散列用户cookie提供的令牌
  4. 使用hash_equals()将我们生成的SHA-256哈希与存储在数据库中的散列进行比较
  5. 如果步骤4通过,则将当前会话与适当的用户ID关联起来。

这他妈的怎么能阻止我偷饼干用它把我记录在受害者的账户里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-19 11:18:12

它不能阻止任何事情。只有用TLS加密HTTP消息(通常称为HTTPS),才能确保没有人窃取用户的cookie(请注意,HTTPS 必须跨应用于整个域,而不仅仅是登录页面和“秘密”区域。

至于这个方法是做什么的,引用了这篇文章:

  • 攻击者只能使用偷来的cookie,直到受害者下一次访问网站,而不是整个记忆会话的整个生命周期。
  • 当受害人下一次访问该网站时,他将被告知发生了盗窃案。

这里的优点是,用户将尽快收到盗窃案的通知,而不是悄悄地排除另一个会话,或者更糟的是,将用户视为攻击者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32667322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档