0

嗨,我需要实施一些措施来防止用户从未经授权的另一台计算机或手机连接到 webapp,例如,如果用户正确输入用户名和密码,并且公司授权的计算机或手机授予访问权限,但如果用户在另一台计算机或移动设备上,则必须拒绝登录到 webapp。

此外,用户可以在任何地方连接到互联网并使用此 web 应用程序,但前提是使用授权设备来执行此操作。

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

所以有人有什么建议吗?

编辑:这个网络应用程序是一个内部应用程序,可以访问公司的销售和库存,因此公司提供的唯一设备可以访问网络应用程序。

4

2 回答 2

1

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

设备如何获得授权?它需要有多安全?为什么必须将访问权限仅限于授权设备?

我在这里看到两种可能性:

  1. 这个要求是对应用程序的最终用户施加控制的错误尝试,除了已经通过传统身份验证方法(即登录名/密码)解决的问题之外,没有真正的安全问题。
  2. 验证用户使用的设备是否满足某种安全级别(例如病毒防护、位于物理上安全的位置等)是合法的需求。在那种情况下,我没有资格构建这样的解决方案(当然也不是在 StackOverflow 的答案中),而且,从你的问题来看,你也不是。即使您提出了一个您确信是安全的解决方案,我也可以保证它不是。

真正安全的实现可能会使用公钥加密和来自授权设备的某种签名。甚至可以伪造签名,特别是对于基于浏览器的解决方案,这就是为什么这么多公司对可信平台模块感兴趣的原因。

于 2013-04-30T18:04:26.630 回答
0

如果不访问 java 插件、本机编程、active x 等,您将无法直接获取设备的 mac 地址。

执行此类操作的常用方法(读取 Facebook 检测您之前没有从某个位置登录的时间)操作系统在授权的设备上设置 cookie。在服务器上存储这些 cookie 的列表,并检查以确保在用户尝试使用设备时获得正确的 cookie。cookie 应该是随机的,碰撞的可能性很小。每次用户使用新值登录时,您甚至可能会喜欢并更新 cookie。基本上,您要查找的内容与“记住我”登录系统完全相同。

于 2013-04-30T17:27:48.370 回答