繁体   English   中英

如何防止用户将未经授权的设备连接到我的Web应用程序?

[英]How to prevent user to connect from un-authorized device to my web app?

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

用户也可以在任何地方连接到Internet并使用此Web应用程序,但前提是使用授权设备进行操作。

我曾考虑过使用mac地址来完成此操作,但我不知道这是否是正确的方法。

所以有人有什么建议吗?

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

MAC地址是一个糟糕的选择,因为伪造它非常简单(除了很难通过javascript获取它)。 由于您依赖用户控制的内容来告诉您该设备已获得授权,因此几乎所有方案都将遇到该问题。 Cookies,甚至是“随机”饼干,也存在相同的伪造问题。

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

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

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

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

如果无法访问Java插件,本机编程,活动X等,则无法直接获取设备的MAC地址。

这样做的通常方法(阅读Facebook会检测到您之前未从某个位置登录过),以便在经过授权的设备上设置Cookie。 将这些cookie的列表存储在服务器上,并检查以确保在用户尝试使用设备时获得正确的cookie。 Cookie应该是随机的,发生碰撞的可能性很小。 您甚至可能会幻想每次用户使用新值登录时更新cookie。 基本上,您要查找的内容与“记住我”登录系统完全相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM