在许多银行和投资网站上,该网站阻止用户从未识别的计算机登录,而无需先回答其他问题或激活该计算机。开发人员通常如何创建此功能?
例如,以下是当我从无法识别的计算机连接到我的帐户时Salesforce.com提供的消息:
我们试图从我们的某个应用程序中执行相同类型的操作,但不确定最佳(且最安全)的方法。
答案 0 :(得分:3)
有很多可能的方法可以做到这一点,但通常他们会使用以下几种组合:
如果与现有的一个可信连接存在太多差异,则认为该计算机不受信任。如果为“太多”绘制线条,则需要在安全性和便利性之间进行权衡。
答案 1 :(得分:2)
没有真正安全的方法,你可以根据IP地址来做,但这通常是动态的,你可以在cookie上做但是它们远非安全,你可以在MAC地址上做但你会需要使用Java(IIRC)来访问它,但这又可以被欺骗......
没有真正的方法来检查他们所连接的计算机之前是否曾经连接过。你可以找到“黑客”来做它,但它永远不会是安全的。
答案 2 :(得分:2)
您可以在用户计算机上设置Cookie,然后检查该Cookie是否存在且包含正确的值。如果cookie不存在,那么这台计算机就是新的,否则这台计算机就在这里。
Cookie值可以是一些随机哈希,具有不同的属性,例如IP地址,用户代理等......
答案 3 :(得分:2)
电子前沿基金会(EFF)已经建立了一个演示网站,显示即使禁用了cookie或者您从不同的IP /提供商连接,识别浏览器也是多么容易:
他们使用
的组合但是,典型的场景(可能是您的示例应用程序中使用的场景)将在本地存储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?