安全的基于功能的浏览器检测
Safe feature-based browser detection
我一直在做一些关于安全可靠的浏览器检测的研究。考虑到解析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过滤器是不可靠的。
相关文章:
- 如何识别“;输入“;没有浏览器检测的事件
- 使用浏览器进行浏览器检测
- 现代浏览器检测
- 浏览器检测-移动与PC
- 用于浏览器检测和url链接的脚本
- Javascript浏览器检测与IE 11
- MS Edge有一个window.chrome对象??破坏浏览器检测
- 安卓手机浏览器检测
- safari 7的浏览器检测
- 使用IE10/IE11进行浏览器检测
- 浏览器检测和 Firefox data-src 属性
- 桌面浏览器检测Javasctipt
- 浏览器检测浏览器,如 Chrome Canary
- 功能检测(不是用户代理嗅探)以执行浏览器检测
- 安卓原生浏览器检测通过用户代理正则表达式
- 浏览器检测
- 使用 Zend Framework 或 Javascript 进行浏览器检测
- 浏览器检测和重定向
- 如何跨浏览器检测(并纠正?)各种滚动条可见性
- 浏览器检测脚本和 if 语句