检测浏览器相关安全防护是否开启
打开浏览器控制台,检测输入navigator.webdriver,浏览回车。器相全防如果返回true,关安说明你正被自动化工具操控——但这和“安全防护”没关系。护否真正要检测的开启东西,藏在更深的检测地方。
我去年帮朋友排查一个诡异问题:他的浏览网银页面总提示“环境异常”,但杀毒软件、器相全防防火墙全开着。关安折腾半天,护否最后发现是开启浏览器自带的跟踪防护被他手动关掉了。银行的检测风控脚本检测不到那个“安全标识”,直接拒绝服务。浏览你看,器相全防防护开没开,不是看图标亮不亮,而是看浏览器暴露给网页的“指纹”长什么样。
最直接的检测方法是翻navigator对象的家底。在控制台输入navigator,展开看属性。重点盯三个:doNotTrack(请勿跟踪)、deviceMemory(设备内存)、hardwareConcurrency(CPU核心数)。Chrome 89以后,doNotTrack默认是null,不是1——这反而正常。但如果你装了隐私插件,它可能强行把值改成1。这时候,某些网站的反爬虫系统会把你标记为“可疑对象”。讽刺吧?你越保护隐私,越容易被当成机器人。
更隐蔽的检测藏在PerformanceObserver里。网页可以监听你的渲染性能,如果发现帧率异常平稳,没有波动,那大概率是虚拟机或远程桌面。真正的物理机,后台总有点杂事干扰渲染。你可以自己试试:开一个空白页,在控制台跑一段循环动画,同时打开任务管理器看CPU曲线。如果曲线平得像心电图停止,那你的浏览器可能跑在沙箱里——安全软件干的好事,也可能是黑客的隔离环境。
还有个土办法,直接看window.chrome对象。普通Chrome会有loadTimes、csi这些方法。但如果你用了Firefox或Safari,它们没有这个对象。别笑,很多钓鱼网站就靠这个判断浏览器类型,再决定放哪种木马。你装个User-Agent切换器伪装成Chrome,反而可能触发更严格的检测——因为伪装者的window.chrome是undefined,暴露了。
最后说个最容易被忽略的:浏览器更新状态。老版本Chrome 80的navigator.plugins会暴露已安装的插件列表,新版直接返回空数组。如果你还在用旧版,网页能精确识别出你的Flash版本、PDF阅读器,甚至Java运行时——这些全是攻击入口。检测方法很笨但有效:打开chrome://version,看“命令行”那一栏。如果里面有--disable-blink-features=AutomationControlled,说明有人手动关掉了自动化标记,这通常是爬虫工程师干的,正常用户不会碰这个参数。
你问“安全防护是否开启”,其实分两层。第一层是浏览器自带的:弹窗拦截、恶意软件防护、安全DNS。第二层是外挂的:杀毒软件扩展、广告过滤、脚本拦截。前者用navigator.permissions查询,后者得看扩展列表。但说句实在话——真正的安全不是靠检测,而是靠习惯。我见过有人开着全套防护,却把密码写在便签纸上贴在显示器边框。浏览器防护再强,也防不住你主动送人头。
