2013-04-30 60 views
0

嗨我需要实施的东西,以防止用户连接到一个Web应用程序,从另一台计算机或它没有被授权的移动,例如,如果用户输入用户名和密码正确和计算机或其授权的公司授权的计算机或移动访问权限,但如果用户在另一台计算机或移动设备上,则必须拒绝登录到该webapp。如何防止用户从未经授权的设备连接到我的网络应用程序?

此外,用户可以在任何地方连接到互联网,并使用此webapp,但只有在使用授权设备才能使用。

我以为使用mac地址来完成这个,但我不知道这是否是正确的方法。

那么有人有什么建议吗?

编辑:这个webapp是一个内部应用程序,可以访问公司的销售和库存,所以只有公司提供的设备才能访问webapp。

+0

定义什么是“授权”设备... – Ian 2013-04-30 03:30:47

+0

您将无法获取mac地址,而不是没有设备上的其他软件。 – GJKH 2013-04-30 15:26:18

+0

授权设备,是公司接受的设备,此应用程序是一款内置应用程序,基于应用程序,可访问公司信息(如销售和库存),只有来自公司的设备上的员工才可以被访问。 – Darkmax 2013-05-02 02:29:21

回答

1

MAC地址是一个糟糕的选择,因为它是相当微不足道的伪造它(除了通过JavaScript获取它的困难)。几乎所有的方案都会遇到这种问题,因为您依赖用户控制的内容来告诉您设备已获得授权。 Cookies,即使是“随机”的,也有相同的伪造问题。

设备如何授权?它需要有多安全?为什么只能将访问权限限制在授权设备上?

我看到2点的可能性在这里:

  1. 这个要求是引入歧途的企图在应用程序的最终用户施加控制,并没有真正的安全问题,除了那些已经被通过传统的认证解决方法(即登录/密码)。
  2. 确实需要验证用户使用的设备是否符合某种安全级别(例如病毒防护,位于物理安全位置等)。在那种情况下,我没有资格建立这样的解决方案(当然不是在StackOverflow答案中),从你的问题来看,你也不是。即使你提出的解决方案你确信是安全的,我可以保证它不是。

一个真正安全的实现可能会使用公钥加密和授权设备的某种签名。即使这样的签名可能是伪造的,尤其是对于基于浏览器的解决方案,这就是为什么很多公司都对trusted platform module感兴趣的原因。

0

你可以不要直接访问Java插件,本地编程,Active X的获取设备的MAC地址等

的常用方法做这样的事情(读取Facebook的检测,当你没有登录从之前的位置)os在被授权的设备上设置cookie。将这些Cookie的列表存储在服务器上,并检查以确保在用户尝试使用设备时获取正确的Cookie。 Cookie应该是随机的,碰撞几率很小。每次用户使用新值登录时,您甚至可能会喜欢并更新cookie。基本上,您所寻找的内容与“记住我”登录系统完全相同。

相关问题