js 能不能检测到用户打开了浏览器的调试面板正在抓包?

2020-12-31 10:04:31 +08:00
 kisshere

想屏蔽掉打开了浏览器调试面板的用户,js 除了监听“F12”、“Ctrl+Shift+I”的按键之外,还有哪些方法,求 V 友集思广益

4561 次点击
所在节点    程序员
30 条回复
ruanimal
2020-12-31 10:06:44 +08:00
开了浏览器调试面板的用户(大部分) = V2EX 用户
楼主来这里问,感觉有点意思
des
2020-12-31 10:08:02 +08:00
maocat
2020-12-31 10:09:19 +08:00
好的,我马上用 fiddler 抓包
ciqulover
2020-12-31 10:14:34 +08:00
最简单兼容性管广泛的办法是使用监听一个一个对象的 getter 事件然后 console.log 打印,控制台打开的时候会触发事件,在事件监听里直接 window.location.href 跳跑,正常情况没办法避开。
tangchi695
2020-12-31 10:15:04 +08:00
只能对付只会用调试面板的人。
otakustay
2020-12-31 10:16:30 +08:00
当你想和用 devtool 的人对着干,你就是在和一个技术人员对着来了,考虑到对方大概率的专业性,基本上你输定了
FaiChou
2020-12-31 10:19:47 +08:00
通过菜单栏点击进入 devtools 也能被监听到吗
opengps
2020-12-31 10:20:07 +08:00
没啥用,毕竟浏览器本身就是要解析看代码的
billtsui
2020-12-31 10:20:22 +08:00
拿好不谢,https://github.com/sindresorhus/devtools-detect

楼主是不是想做反爬啊
ciqulover
2020-12-31 10:21:09 +08:00
```
var element = new Image()
Object.defineProperty(element, 'id', {
get: function() {
window.location.href = 'https://google.com'
},
})
console.log(element)
```
直接上代码了,一步到位的办法。
V 友门倒是可以想一想是否有办法绕过这段代码调试 hhh 。
VDimos
2020-12-31 10:23:30 +08:00
加个 debugger,打开了控制台会暂停,然后计时,长时间没执行就是打开了控制台
misdake
2020-12-31 10:28:28 +08:00
抓包又何必在控制台
glaucus
2020-12-31 10:29:25 +08:00
@des #2 试了一下,这个是监听的页面大小变化实现的,用弹出窗口打开就监听不到了
ccyu220
2020-12-31 10:29:26 +08:00
@ciqulover 你这段代码哪里需要绕...
libook
2020-12-31 10:29:45 +08:00
不开浏览器的开发者工具也可以抓包。

屏蔽了快捷键也可以拿鼠标在菜单里打开开发者工具。
可以在空白页先开开发者工具再加载 URL 。

如果想解决防抓包的问题可以考虑在 HTTPS 基础上再加一层加密通信,让抓到的包无法解读内容,当然因为客户端上横竖都会有加解密算法,所以也是可以破解的,只不过代码压缩混淆后可能破解难度会比较高。

总之,这个像是个 XY Problem 。
linksNoFound
2020-12-31 10:30:41 +08:00
不要嘲笑楼主,微信就做到了
ss098
2020-12-31 10:34:19 +08:00
我遇到最多的是无限 debugger,但很简单就能禁用。

还有打开控制台疯狂 alert 的。
aogu555
2020-12-31 10:34:56 +08:00
印象里国家知识产权局的反爬做的很厉害,一进控制台直接跳到加密代码去了
Track13
2020-12-31 10:39:45 +08:00
你写的什么?值得我打开 f12 看吗
test005
2020-12-31 10:43:23 +08:00
@ciqulover 火狐可破

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX