安全的基于功能的浏览器检测

Safe feature-based browser detection

本文关键字:浏览器 检测 功能 于功能 安全      更新时间:2023-09-26

我一直在做一些关于安全可靠的浏览器检测的研究。考虑到解析navigator.userAgent是最糟糕的方法,因为它很容易被用户欺骗,最好的方法似乎是使用特征检测。所以,根据stackoverflow和其他地方的各种文章,这是最终的样子:

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),这些方法中是否有任何警告?用户能否以任何方式做一些事情,使这些结果也会返回错误的结果?

这些方法中有任何警告吗?用户能否以任何方式做一些事情,使这些结果也会返回错误的结果?

我想你必须考虑两件事。首先,一个ID(取决于浏览器)可能会污染全局作用域。其次,你已经不能再相信前缀是特定于浏览器的。我建议,正如其他用户在评论中指出的那样,依靠特征检测来代替(你正在做的是相关推理)。

作为旁注,你的Safari过滤器是不可靠的。