我有一个网站,我想禁止所有用户不使用chrome和衍生品,firefox和衍生品,safari或新版本的Opera(IE和其他旧浏览器可能会危及安全性)。是否有一种绝对万无一失的方式(即使黑客也不能欺骗他们的浏览器)在客户端或服务器端用JavaScript做到这一点?
答案 0 :(得分:0)
不,它无法可靠地完成。您可以使用一些复杂的JavaScript计时运行,并将测试库的执行时间与每个浏览器和版本的已知计时进行比较。显然,这必须在比率基础上进行测试,以排除硬件性能的差异。然而,这不是万无一失的,并且需要指纹识别"每个浏览器版本的性能,并使您接受,并且需要在每个新的浏览器版本发布时不断更新。这不是一种万无一失的方法,通常被认为是一个非常糟糕的主意。它还可能导致误报,这会导致符合浏览器的用户根据JavaScript指纹测试中的可变性拒绝访问。
强化服务器是一种更好的方法,使用简单的浏览器标识符(如导航器名称)将提供您需要的结果。尝试设计一个万无一失的方法的麻烦在于,即使你让它工作,一个谨慎的黑客仍然可以得到你。强化服务器是保护您网站的唯一真正方法。
答案 1 :(得分:0)
这是一种糟糕的安全方法
您不应该依赖用户从特定浏览器访问您的网站这一事实。您应该选择允许这些兼容浏览器的功能,并通过签名(浏览器发送的有助于识别特定浏览器类型的部分)将其禁用给其他人。
最重要的是,您应该永远不会在应用程序中留下漏洞!如果您知道它是不同浏览器类型中的漏洞,请修复问题 - 不要试图隐藏它。人们总会找到解决隐藏问题的方法。轻松修复?这样就可以隐藏了!