我问的原因是b.c.这种情况:
记住我的cookie被盗了。它从被盗的计算机中删除并放在攻击者的计算机上。我看到的所有模型(这one得到了许多赞成)只会像攻击计算机一样对待攻击者计算机并将其记录下来。
如何防止这种情况?我有两种方法都不合适。
1。)仅允许一台“记住我的电脑”。 2.)跟踪多台计算机并让用户监控有多少台计算机记住他/她。
有没有办法跟踪计算机上的硬件,如以太网MAC地址?
编辑答案:
使用MAC地址。以下链接为IE和Firefox提供外部组件。需要Safari的外部组件。
为澄清添加:
不是IP地址(很难在不能改变的地方)
答案 0 :(得分:2)
每次登录/访问时更改cookie。如果计算机被盗,您登录并更改cookie。被盗的计算机有旧cookie被注销。
如果被盗的计算机登录,则他/她更改cookie。真实用户被注销,然后必须重新登录,以便再次更改cookie。
答案 1 :(得分:2)
保存在用户代理的cookie哈希中+其他内容(如分辨率)。也许不是很安全,但比简单的cookie更好,记住我的信息,并适用于动态IP的人。
答案 2 :(得分:0)
将cookie绑定到服务器端的IP地址?
答案 3 :(得分:0)
你可以设置最后记住我登录ip到数据库(或进入cookie)
$_SERVER["HTTP_CLIENT_IP"]
答案 4 :(得分:0)
我的方法是各种技术的混合。我使用的cookie包含有关已登录的PC的信息 - 浏览器,分辨率等,以及(默认情况下)IP。显然,我可以将这些与数据库中记录的最后值进行匹配,以确保带有cookie的机器没有更改。
然后,我为那些拥有动态IP地址的人提供了一种方法,可以选择退出会话的IP地址匹配,并提供大量适当的警告,这样做会大大降低保护其帐户的安全性,当然。
答案 5 :(得分:0)
我喜欢在这个实例中查看Windows Live Messenger,如果我登录桌面应用程序以及hotmail,我会收到一条通知,我已经登录了多个地方 - 它会问我是否要退出在另一个位置。
我喜欢这个是它将控制权交给用户手中,我不喜欢的是攻击者可以踢出一个真正的用户并完全劫持一个帐户。
对我来说这整个主题看起来如果你这样做你该死,如果你不这样做该死的话。
让我们退后一步,谁可以成为攻击者?好吧,任何人 - 例如你的前夫或前妻知道你的用户名和密码,他/她可以轻易攻击你的帐户,因为他/她知道你的所有信息开始。你永远不能完全保护自己,你改变密码,但他/她可能也知道!
我请你查看你的项目,并评估一个记住我的系统是否会真正为其带来的任何安全风险带来附加价值。
现在,直接回答您的问题:
为用户生成一个唯一的密钥,将其插入数据库并将密钥写入您的cookie,当cookie被发送到服务器时,您根据数据库中的密钥对其进行评估,如果匹配的话 - 宾果,你有权访问,如果没有运行注销脚本并销毁cookie。
为此,每次你写一个cookie就会根据用户ID和cookie的状态存储数据库中的信息(例如,活着或死亡),然后每次你读取cookie检查它的状态 - 如果它被设置为alive,则只需记录事件并继续前进,但是,如果它被设置为dead,则会终止cookie并记录它被杀死。
接下来,您可以显示此日志信息并向用户提供某些控件,例如,您可以允许用户将cookie设置为dead,然后在您下次读取cookie时将其设置为死。
另一种方法是将您的应用程序包装在Adobe AIR之类的内容中,以便检测您可以使用的硬件信息。
我希望这会对你有所帮助。