如何检测用户是否从识别的计算机进行连接?

时间:2010-02-07 20:35:52

标签: security cookies ip-address banking

在许多银行和投资网站上,该网站阻止用户从未识别的计算机登录,而无需先回答其他问题或激活该计算机。开发人员通常如何创建此功能?

例如,以下是当我从无法识别的计算机连接到我的帐户时Salesforce.com提供的消息:

Activate Required image, computer not recognized

我们试图从我们的某个应用程序中执行相同类型的操作,但不确定最佳(且最安全)的方法。

6 个答案:

答案 0 :(得分:3)

有很多可能的方法可以做到这一点,但通常他们会使用以下几种组合:

  • 您正在连接的IP范围
  • 您的主机名
  • 成功验证后,网站上留下的Cookie会出现在您的计算机上
  • 用户代理字符串

如果与现有的一个可信连接存在太多差异,则认为该计算机不受信任。如果为“太多”绘制线条,则需要在安全性和便利性之间进行权衡。

答案 1 :(得分:2)

没有真正安全的方法,你可以根据IP地址来做,但这通常是动态的,你可以在cookie上做但是它们远非安全,你可以在MAC地址上做但你会需要使用Java(IIRC)来访问它,但这又可以被欺骗......

没有真正的方法来检查他们所连接的计算机之前是否曾经连接过。你可以找到“黑客”来做它,但它永远不会是安全的。

答案 2 :(得分:2)

您可以在用户计算机上设置Cookie,然后检查该Cookie是否存在且包含正确的值。如果cookie不存在,那么这台计算机就是新的,否则这台计算机就在这里。

Cookie值可以是一些随机哈希,具有不同的属性,例如IP地址,用户代理等......

答案 3 :(得分:2)

电子前沿基金会(EFF)已经建立了一个演示网站,显示即使禁用了cookie或者您从不同的IP /提供商连接,识别浏览器也是多么容易:

  

Panopticlick: How unique - and trackable is your browser

他们使用

的组合
  • 用户代理字符串
  • HTTP标头
  • 已安装的浏览器插件
  • 时区
  • 屏幕尺寸和颜色分辨率
  • 系统字体
  • Cookie设置

但是,典型的场景(可能是您的示例应用程序中使用的场景)将在本地存储cookie并通过此cookie识别返回的用户。

答案 4 :(得分:2)

最安全的方法无疑是发布客户端证书,并让服务器检查连接上的证书(确保并使用撤销列表!)。这有很多管理开销,但有效。

答案 5 :(得分:0)

大多数热门网站都使用Flash Cookie来跟踪唯一身份访问者。 Flash Cookie与常规浏览器Cookie类似,但在用户切换浏览器或清除浏览器历史记录时不会被清除。

再次阅读:您可以尝试清除历史记录或切换浏览器,甚至使用Chrome的“隐身”模式,Flash Cookie仍会记住您的身份。它们与Flash安装而不是浏览器相关联。

Wired在这里有一篇关于他们的文章: http://www.wired.com/epicenter/2009/08/you-deleted-your-cookies-think-again/

尽管Wired警告有关Flash Cookie的问题,但他们自己也会使用Flash Cookie来跟踪访问者。去图。

在Flash中,它们被称为“SharedObjects”。在此处查看有关如何使用它们的更多信息 How do I access cookies within Flash?