0

我正在寻找一种方法让用户能够轻松连接到我的应用程序,但很少。我想要做的是能够在用户的计算机上存储一个寿命为 1 年的 cookie。如果他们在 cookie 处于活动状态时访问该网站,他们将自动登录。

我建议的解决方案是:在初始登录时,创建一个包含用户 IP 地址、上次登录日期和随机数的 cookie,所有这些都经过哈希处理。我还将他们的用户 ID 和 IP 地址存储在 cookie 中。这些值也将存储在数据库中。如果几个月后他们再次访问该站点,IP 地址、ID 和哈希值与数据库中的值匹配,那么他们会自动登录。计算一个新的哈希值。如果其中任何一个不匹配,则将提示用户再次登录。

这种设计是否存在明显的安全漏洞?我不担心 IP 地址的变化,这将是大学校园里的教授。

在此先感谢,--戴夫

4

3 回答 3

1

您的问题没有明确说明该系统与任何其他标准的长寿命 cookie 有何不同。这些在网络上使用,没有重大的安全问题,所以我认为你没有理由不能以类似的方式使用 cookie。

于 2009-11-20T00:47:38.193 回答
0

这种设计是否存在明显的安全漏洞?

不。

于 2009-11-20T00:51:51.603 回答
0

我会说,如果有人弄清楚系统,这绝对是一个安全风险。老实说,我会重新考虑该设置,至少将其存储在数据库部分中。更不用说 cookie 很少会在某人的计算机上保留一年这一事实,大多数人更频繁地清理它们。

但是既然你问了,创建它就很容易了:

$expire = time()+(60*60*24*365);

setcookie("login", "mycookie", $expire, "", "yoursite.com" );

您可以插入您正在谈论的令牌,而不是“mycookie”。希望能有所帮助。

于 2009-11-20T00:52:57.560 回答