有没有办法阻止cookie在另一台计算机上使用?

时间:2011-04-17 05:21:38

标签: http authentication cookies security

我在cookie中放了一些身份验证信息。出于安全原因,我想阻止有人将cookie复制到另一台计算机并使用它登录。我该怎么办?

4 个答案:

答案 0 :(得分:1)

如前所述,如果您将身份验证信息放入纯文本的cookie中,您应该认真考虑使用类似会话的内容。

一旦你有了sesssions,也许你可以将会话ID与你后端的IP地址相关联,并检查会话ID和请求IP地址是否匹配:这样,如果有人复制包含会话ID的cookie然后尝试要远程访问站点,会话ID和IP将不匹配,并且身份验证将失败。

答案 1 :(得分:0)

没有,你不应该把敏感日期放在cookie中。

对于身份验证信息,您应该使用会话。

http://www.tizag.com/phpT/phpsessions.php

答案 2 :(得分:0)

您可以使用可靠,公开,众所周知的算法对信息进行加密。然后,如果cookie被复制,收件人将无法从中收集任何信息。

当然,这意味着您需要在服务器上进行加密和解密以保证其安全,否则(如果您使用的是JavaScript)私钥可以从JavaScript代码中获取并用于解密cookie。您还需要弄清楚您收到的cookie是来自原始收件人,还是它是一份副本。

由于您必须在服务器端执行此操作,因此您还可以使用会话。这就像一个cookie,除了传递ID而不是实际数据(ID用于查找服务器上的数据。)但是仍然可以复制会话cookie并使另一台计算机看起来像以原始登录方式登录,这就是FireSheep所做的。

答案 3 :(得分:0)

您不应将身份验证信息放入cookie本身。设置cookie时,你应该建立一个会话,绑定到一些持久存储(sql / nosql)。

这基本上是一些与其他信息匹配的随机生成的唯一ID。随机生成的ID作为cookie发送。在连续请求中,您阅读了cookie,并尝试从中获取用户帐户。

您可以在会话上设置只能从您为其分配的IP地址访问的约束。您也可以将它绑定到用户代理(虽然这是安全性,但可以配置用户代理)。