如何监控是否打开网页的f12开发者模式?
发布于 作者:苏南大叔 来源:程序如此灵动~

苏南大叔最近发现一个类似同业的网址,出于职业习惯,就去点开发者模式看看源码。结果就发现了里面有个很有意思的功能。作用是对开发者模式进行监控,蛮新奇的功能。所以,这里对这个代码进行了分析。

测试环境:chrome@97.0.4692.71
。
标的物
这位仁兄的博客是:
点开开发者模式,就会看到被debug
到。

然后点击关闭开发者模式的话,就会有个“打开过开发者模式”的提示信息。

这个js
文件如下所示:
源码大家可以自己打开查看,这里苏南大叔就捡着几段分析分析。
页面禁止被iframe
这个功能也挺常见的,不过以前苏南大叔都是写if (top!=self){}
。
禁止快捷键
嚯嚯,这快捷键禁止的这是一个齐全。
时刻生成debugger
这段代码,着实烧脑。不过要是仔细琢磨个个把小时的话,这段代码的意思就是:
你说,就这么简单的事情,干嘛写的这么复杂呢?打半天哑谜。顺便说一下,0/0
的结果是NaN
。
最玄幻的一段
这段代码就是最核心的代码,看似简单实则非常玄妙。
addListener
这东西是自定义的,并不是大家所熟悉的那个addListener
。debugger;
这个关键代码放置的位置非常有技巧。- 利用
debugger;
前后的时间差来计算debugger;
有没有被执行。执行的话,就是打开了开发者模式。 - 而这个
debuger
是只有浏览器的开发者模式才能够识别的,正常网页是无感的。
相关文章
- https://newsn.net/say/electron-f12.html
- https://newsn.net/say/safari-f12.html
- https://newsn.net/say/f12-format-js.html
总结
没想到,这个日常最常用的浏览器开发者模式,居然是个双刃剑。居然能用来提防别人使用开发者模式,哈哈。虽然效果不咋地,但是打开开发者模式这一事件,能够被监控到,这是始料未及的。
更多f12
的故事,请点击:


