对,所以我最近正在开发非常私有的系统,我正在研究管理登录保护。我是一个具有js/jq基本知识的PHP开发人员。到目前为止,我处理了大部分内容,但我希望保护登录过程本身。现在,据我所知,只有internet被允许连接到设备(例如CD或拇指驱动器)并检查文件,然后才允许登录,所以我正在研究一些我可以实际使用的东西。因此,我的想法是一个铬扩展,在内部开发和未发布,这将执行一些相当复杂的事情,从而保护登录页面。因此,我可以有一个空白的登录页面,或一个充满垃圾邮件添加,没有任何登录形式,但通过单击扩展名,我将能够登录。
另外,我正在寻找一些想法,而不一定是代码,虽然我理解这是一个一般性的问题,但我还没有收集到很多关于这个问题的数据,因为搜索“登录”和类似的内容可能会引起很大的误解。
我发现另一件事很酷,但不确定它是否有用,那就是NFC标记。理论上,你会让网站检查NFC接收器连接到PC,如果它在上面找到一个特定的设备,让你登录,否则,它没有。只是一个想法。考虑到您登录的环境是相当受控的(它总是一个PC,总是窗口,总是Chrome,总是同一个国家),随时可以用任何想法打击我,你将如何解决这个问题。如果可能的话不用投资一大笔钱。
发布于 2014-06-05 18:29:55
在阅读了这篇文章的所有评论后(到目前为止),我没有什么可以贡献的,但还是感谢大家的分享。话虽如此,以下是我对上述一些评论的看法。
关于书签解决方案,当有人能够访问嗅探器、代理或http日志,甚至是机器的浏览器历史记录时,就会出现问题。
我喜欢@samfisher的想法,使用动态令牌(比如Google的“验证器”)。如果你想在后台提交秘密值(更友好的用户),你必须让扩展远离不想要的人,一旦扩展安装在一个特定的浏览器上,代码就对那个人来说是可行的。只是用作参考1
受IP地址的限制总是个好主意(主要是在内部网或使用VPN)
SSL/TLS解决方案是我认为您需要的,在某种程度上,它作为密钥工作,而对通道进行加密。安装一次,每次工作(直到到期)
在大多数情况下,用户机器必须是安全的。
PS:您总是可以接受由您定义的特定用户代理http报头,以允许传入连接,一些市长公司在过去的2中已经这样做了;)
1's-security-token/#.U5CvIM9dW24
2
发布于 2014-02-05 19:57:14
听起来,您可能正在寻找双因素身份验证的物理形式。您可能需要查看YubiKey。在PHP web应用程序中添加两个因素很容易(他们甚至为您提供了PHP库)。钥匙本身很便宜(虽然我不知道你的预算)
如果你真的不需要一个物理设备,那么一定要按照它的建议去做。证书是完全免费的,并且几乎不需要用户交互(尽管如果用户系统不安全,这可能是一个缺点)。
我本想补充一下这一点,但我没有足够的“观点”。太傻了。
发布于 2014-01-06 17:53:57
据我所知,一个理想的解决办法将实现以下目标:
我不怀疑一个写得很好的Chrome扩展或者类似的版本可能会实现这一点。为了成为一种有效的身份验证形式,它实际上应该是检查一个只有有效管理员才能拥有的秘密(我说已经拥有了它,因为我们最好检查用户拥有的东西--我们知道身份验证的另一个因素是密码,用户知道的东西)。存在一些固有的挑战,包括:
就实用性而言,Chrome扩展名可能会从磁盘读取文件,尽管用户需要自己选择它。http://developer.chrome.com/apps/fileSystem.html
鉴于上述在实现这类系统方面存在的困难,我将推荐已有多年历史并相当成熟的SSL/TLS客户端证书替代方案。这将提供额外的身份验证因素(管理员必须拥有有效的证书),否则将完全阻止访问登录页面(或任何HTTP通信)。此外,密钥生成、管理、传输等都是在SSL/TLS客户机/服务器中实现的,并且在业界的严格审查下是相对可信的。
一个示例实现,只为了给出所涉及的内容的概念:http://krolm.blogspot.co.uk/2012/09/2-factor-authentication-ssl-client.html
https://security.stackexchange.com/questions/47917
复制相似问题