问题标签 [remember-me]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
310685 浏览

security - 为网站实施“记住我”的最佳方式是什么?

我希望我的网站有一个用户可以单击的复选框,这样他们每次访问我的网站时都不必登录。我知道我需要在他们的计算机上存储一个 cookie 来实现这一点,但是那个 cookie 中应该包含什么?

此外,是否存在需要注意的常见错误,以防止此 cookie 出现安全漏洞,在仍然提供“记住我”功能的同时可以避免这些错误?

0 投票
2 回答
2091 浏览

php - 在 PHP 中进行身份验证的最佳方法

以模型-视图-控制器方式编写身份验证库时,最好和最安全的方法是什么?

让我很难过的事情是跟踪用户活动并通过 cookie 记住用户或在数据库中存储会话?

提前致谢 :)。

0 投票
13 回答
55547 浏览

php - 哪种加密算法最适合加密 cookie?

由于这个问题很受欢迎,我认为给它一个更新很有用。

让我强调AviD对这个问题 给出的正确答案:

您不应在 cookie 中存储任何需要加密的数据。相反,在 cookie 中存储一个大小合适(128 位/16 字节)的随机密钥,并将您希望在服务器上保持安全的信息存储在服务器上,由 cookie 的密钥标识。



我正在寻找有关加密 cookie 的“最佳”加密算法的信息。

我有以下要求:

  • 它必须快速
    加密和解密数据(几乎)每个请求都会完成

  • 它将在小型数据集上运行,通常是大约 100 个字符或更少的字符串

  • 它必须是安全的,但这不像我们正在保护银行交易

  • 我们需要能够解密信息,这样 SHA1 等就出来了。

现在我读到 Blowfish 既快速又安全,而且我读到 AES 又快又安全。Blowfish 具有较小的块大小。

我认为这两种算法都提供了足够的安全性?因此速度将成为决定性因素。但我真的不知道这些算法是否适合小字符串,以及是否有更适合加密 cookie 的算法。

所以我的问题是:
哪种加密算法最适合加密 cookie 数据?

更新
更准确地说,我们要加密 2 个 cookie:一个带有会话信息,另一个带有“记住我”信息。

该平台是 PHP 作为 VPS 上 Linux 上的 apache 模块。

更新 2
我同意cletus的观点,即在 cookie 中存储任何信息都是不安全的。

但是,我们需要实现“记住我”功能。公认的解决方法是设置 cookie。如果客户端提供此 cookie,则允许他或她以(几乎)相同的权限访问系统,就好像他/她提供了有效的用户名密码组合一样。

所以我们至少要加密 cookie 中的所有数据,以便:
a)恶意用户无法读取其内容,
b)恶意用户无法伪造或篡改自己的 cookie。

(在我们对它做任何事情之前,所有来自 cookie 的数据都经过清理并检查其有效性,但那是另一回事了)

会话 cookie 仅包含一个 sessionId/timestamp。它可能在没有加密的情况下使用,但我认为加密它没有害处?(计算时间除外)。

因此,鉴于我们必须在 cookie 中存储一些数据,加密它的最佳方法是什么?

更新 3
对这个问题的回答让我重新考虑选择的方法。我确实可以在不需要加密的情况下做同样的事情。我不应该加密数据,而应该只发送没有上下文且无法猜测的无意义的数据。

然而,我也不知所措:
我认为加密使我们能够将数据发送到 BigBadWorld™,并且仍然(相当)确定没有人可以读取或篡改它......
这不就是全部吗?加密点?

但下面的反应倾向于:不要相信加密来实现安全。

我错过了什么??

0 投票
3 回答
1603 浏览

security - 这是实现“记住我”功能的合理方式吗

如果用户登录该站点并说“记住我”,我们将获得该用户的唯一标识符,使用 RijndaelManaged 对其进行加密,密钥大小为 256,并将其放入 httponly cookie 中,设置有效期为 120 天,每次对服务器的成功请求都会刷新过期时间。

可选地,我们根据用户代理和部分 ipv4 地址(最后两个八位字节)生成初始化向量。

显然没有内置真正的过期系统,从技术上讲,用户可以永远使用这个加密密钥(假设我们不更改服务器端密钥)..

我考虑到要允许此功能,我需要允许用户能够绕过登录并给我他们的唯一 ID(这是一个 guid),我认为单独的 guid 很难猜出一个真正的用户 guid,但是会使站点容易受到botnots生成guid的攻击(我不知道他们找到合法的guid有多现实)..所以这就是为什么在服务器知道加密密钥的地方进行加密,以及可选的iv特定于浏览器和 ip 部分。

我是否应该考虑另一种方法,让服务器发出与用户关联的票证,这些票证将有一个已知的到期日期,以便服务器控制到期?我真的应该关心到期吗?记住我到底还是记住我?

期待被谦卑;),干杯。

0 投票
5 回答
29726 浏览

security - “在这台电脑上记住我” - 它应该如何工作?

查看 Gmail 的 cookie 很容易看到“记住我”cookie 中存储的内容。用户名/一次性访问令牌。在用户名是秘密的情况下,它也可以以不同的方式实现。但不管怎样……这东西的安全性不是很高:你偷了 cookie,然后你就准备好了。

然而,我的问题是在功能方面:你什么时候擦除他们的访问令牌?如果用户登录时没有在另一台机器上点击“记住我”,是否应该使他们在所有机器上的访问令牌失效?我在问这传统上是如何实现的,以及它应该如何实现。

0 投票
12 回答
191216 浏览

php - “让我登录” - 最好的方法

我的 Web 应用程序使用会话在用户登录后存储有关用户的信息,并在用户在应用程序内从一个页面到另一个页面时维护该信息。在这个特定的应用程序中,我存储了这个人user_idfirst_namelast_name

我想在登录时提供一个“让我保持登录”选项,它将在用户的机器上放置一个 cookie 两周,当他们返回应用程序时,它将以相同的详细信息重新启动他们的会话。

这样做的最佳方法是什么?我不想将它们存储user_id在 cookie 中,因为这似乎会使一个用户很容易尝试伪造另一个用户的身份。

0 投票
2 回答
891 浏览

web-applications - 登录、注销和会话行为

  1. 当您注销 Web 应用程序时,是否应该注销所有会话?当我从公共图书馆退出网络应用程序时,它是否也应该退出我在家用计算机上的会话?

  2. 当您在登录时选择“记住我”或“保持登录状态”(以延长您的会话时间超过您的浏览器打开时间)时,每次访问该站点时是否会不断更新?如果最初设置为 30 天,那么当您在两周后访问该站点时,该 30 天是否会延长?

我知道这里没有明确的答案;我只是在寻找一些好的考虑和期望。

0 投票
2 回答
3952 浏览

asp.net - 在 ASP.NET 中实现“记住我”功能

remember me在 ASP.NET 网站上实现“”功能的最佳方式是什么?

我应该使用自定义 cookie 还是有更简单的方法?

0 投票
3 回答
5801 浏览

zend-framework - Zend Framework rememberMe() 似乎不记得我

我的会话似乎只在当前窗口/选项卡中有效。它似乎也很快超时。以下是我目前正在尝试的方式:

这是在我的登录控制器中:

这是在我的引导程序中:

我对这些东西比较陌生,所以请耐心等待!任何帮助将不胜感激。

0 投票
1 回答
1511 浏览

c# - 在登录中实现“记住我”功能时,表单身份验证不会重定向到 defaultUrl

我有一个 ASP.Net 网站,它具有登录页面的“记住我”功能。它使用基于表单的身份验证,并且 defaultUrl 指向默认页面,但是当访问该站点时,即使会话经过身份验证,用户也不会重定向到默认页面,而是停留在登录页面。这仅发生在 Live 站点中,它在开发环境中运行良好。

可能是什么原因?有什么办法可以解决。

谢谢