0

我一直在对安全可靠的浏览器检测进行一些研究。鉴于解析navigator.userAgent是最糟糕的方式,因为它很容易被用户欺骗,最好的选择似乎是使用特征检测。因此,根据 StackOveflow 和其他地方的各种文章,最终的结果是这样的:

IE: /*@cc_on!@*/false
Firefox: -moz-box-sizing
Safari: window.getComputedStyle && !window.globalStorage && !window.opera
Opera: window.opera && window.opera.version
Chrome: window.chrome

鉴于这些将在浏览器的未来版本中得到维护和监控(当一个人可能禁用我们现在用来检测它的功能时,或者可能是其他浏览器可能实现它,因此该浏览器的测试也将返回 true),这种方法有什么注意事项吗?用户可以以任何方式做一些事情,即使这些也会返回错误的结果?

4

1 回答 1

1

这些方法有什么注意事项吗?用户可以以任何方式做一些事情,即使这些也会返回错误的结果?

AFAIK 你必须考虑两件事。首先,根据浏览器的不同,ID 可能会污染全局范围。其次,您不能再相信前缀特定于浏览器的。正如其他用户在评论中指出的那样,我建议改用特征检测(您正在做的是相关推理)。

附带说明一下,您的 Safari 过滤器不可靠。

于 2013-03-18T12:06:01.623 回答