代码之家  ›  专栏  ›  技术社区  ›  the Hampster

长期曲奇

  •  0
  • the Hampster  · 技术社区  · 15 年前

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

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

    这个设计有明显的安全缺陷吗?我不担心IP地址的变化,这将是一个大学校园的教授。

    事先谢谢, ——戴夫

    3 回复  |  直到 15 年前
        1
  •  0
  •   Andrew    15 年前

    有明显的安全缺陷吗 这个设计怎么样?

    不。

        2
  •  1
  •   Paul McMillan    15 年前

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

        3
  •  0
  •   Jeremy Morgan    15 年前

    我想说,如果有人发现了这个系统,这绝对是一个安全风险。老实说,我会重新考虑这个设置,至少在数据库部分存储它。更不用说饼干很少在别人的电脑上放一年,大多数人会更频繁地清理它们。

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

    $expire = time()+(60*60*24*365);
    
    setcookie("login", "mycookie", $expire, "", "yoursite.com" );
    

    而不是“mycokie”,你可以插入你所说的令牌。希望能有所帮助。

    推荐文章