Php (记住我)多台计算机可以使用吗?

Php (记住我)多台计算机可以使用吗?,php,remember-me,Php,Remember Me,我问的原因是这种情况的卑诗省: 记得我的饼干被偷了。它将从被盗计算机中删除并放置在攻击者的计算机上。我所看到的所有模型(这得到了很多投票)都会简单地将攻击者的计算机当作被黑客攻击的计算机,并记录被攻击的人 如何防止这种情况?我有两种方法都不合适 1.)只允许一台“记住我”计算机。 2.)跟踪多台计算机,让用户监控他/她记住了多少台计算机 有没有一种方法可以跟踪计算机上的硬数据,比如以太网MAC地址 编辑答案: 使用MAC地址。下面的链接提供了IE和Firefox的外部组件。Safari需要一个外

我问的原因是这种情况的卑诗省:

记得我的饼干被偷了。它将从被盗计算机中删除并放置在攻击者的计算机上。我所看到的所有模型(这得到了很多投票)都会简单地将攻击者的计算机当作被黑客攻击的计算机,并记录被攻击的人

如何防止这种情况?我有两种方法都不合适

1.)只允许一台“记住我”计算机。 2.)跟踪多台计算机,让用户监控他/她记住了多少台计算机

有没有一种方法可以跟踪计算机上的硬数据,比如以太网MAC地址

编辑答案:

使用MAC地址。下面的链接提供了IE和Firefox的外部组件。Safari需要一个外部组件

添加澄清:


不是IP地址(硬的,比如不能更改的内容)

将cookie绑定到IP地址,服务器端?

将cookie绑定到IP地址,服务器端?

您可以将上次在IP中登录的“记住我”设置到数据库(或cookie)中


您可以将上次在ip中登录的RememberMe设置为数据库(或cookie)


每次登录/访问时更改cookie。如果电脑被盗,您登录后cookie会发生变化。被盗的计算机已注销旧cookie


如果被盗计算机登录,则他/她会更改cookie。真正的用户注销,然后必须重新登录,再次更改cookie。

在每次登录/访问时更改cookie。如果电脑被盗,您登录后cookie会发生变化。被盗的计算机已注销旧cookie


如果被盗计算机登录,则他/她会更改cookie。真正的用户注销,然后必须重新登录,再次更改cookie。

保存在用户代理的cookie哈希中+其他内容(如解析)。可能不太安全,但比简单的cookie(带有记忆我的信息)更好,并且适用于具有动态IP的用户。

保存在用户代理的cookie哈希中+其他内容(如解析)。可能不太安全,但比简单的cookie更好,它包含记住我的信息,适用于具有动态IP的用户。

我的方法是多种技术的混合。我会使用cookies,其中包含有关已登录PC的信息-浏览器、分辨率等,以及(默认情况下)IP。显然,我可以将这些值与数据库中记录的最后一个值进行匹配,以确保带有cookie的机器没有更改


然后,我会为那些拥有动态IP地址的人提供一种方法,让他们选择退出会话的IP地址匹配,并给出大量适当的警告,当然这样做会显著降低保护他们帐户的安全性。

我的方法是混合各种技术。我会使用cookies,其中包含有关已登录PC的信息-浏览器、分辨率等,以及(默认情况下)IP。显然,我可以将这些值与数据库中记录的最后一个值进行匹配,以确保带有cookie的机器没有更改


然后,我将为那些具有动态IP地址的用户提供一种方法,让他们选择退出会话的IP地址匹配,并提供大量适当的警告,说明这样做会显著降低保护其帐户的安全性。

我想在此示例中介绍一下Windows Live Messenger,如果我登录到桌面应用程序以及hotmail,我会收到一个通知,说明我登录了多个位置-它会询问我是否要注销其他位置

我喜欢的是它将控制权交给了用户,我不喜欢的是攻击者可以踢出一个真正的用户并完全劫持一个帐户

在我看来,这整个话题就像你做了会被诅咒,不做会被诅咒

让我们后退一步,谁能成为攻击者?任何人——比如你的前夫或前妻知道你的用户名和密码,他/她都可以轻易攻击你的帐户,因为他/她知道你的所有信息。你永远无法完全保护自己,你更改了密码,但他/她可能也知道这一点

我要求您查看您的项目,并评估“记住我”系统是否能够在任何安全风险下提供附加值

现在,请直接回答您的问题:

  • 为用户生成一个唯一的密钥,将其插入数据库并将密钥写入cookie,当cookie发送到服务器时,您根据数据库中的密钥对其进行评估,如果是匹配-宾果,则您具有访问权限,如果没有运行注销脚本并销毁cookie

  • 为此,每次编写cookie时,根据用户ID和cookie状态(例如,活动或死亡)将信息存储在数据库中,然后每次读取cookie时检查其状态-如果设置为活动,则只需记录事件并继续,但如果设置为死,则杀死cookie并记录其被杀死

  • 接下来,您可以显示此日志信息并向用户提供某些控件,例如,您可以允许用户将cookie设置为dead,然后在下次读取cookie时将其杀死

  • 使用硬件说起来容易做起来难,但这是可行的。我发现的最简单的方法是使用本地运行的Java小程序,然后可以检测硬件信息并将其发送到应用程序进行处理。对于你的普通网站,我个人认为它不值得,但它是可行的 另一种选择是将您的应用程序包装成可以检测硬件信息以供您使用的东西


    我希望这对你有帮助

    如果我也登录到桌面应用程序,我喜欢在这个实例中查看Windows Live Messenger
    $_SERVER["HTTP_CLIENT_IP"]