求求你可千万别打开开发者控制台,无限 debugger 让人崩溃的哦!

引言

开发 js 的过程中或多或少使用过debugger调试功能,当打开开发者控制台时会自动进入调试模式,中断用户操作,基于此可以用于作为反爬措施之一.

终极防窥秘籍!禁用右键+F12,竟还拦不住好奇宝宝?揭秘防窥新境界!

网站反爬新招:一键封杀右键菜单,让你的网站数据稳如泰山,打造爆款防护秘籍!

效果

由于之前已经禁用了鼠标右键菜单和 F12,所以现在想要进入开发者控制台,只剩下提前打开这条路.

打开并进入https://vip.snowdreams1006.cn/可以看到自动进入无限循环的 debugger 调试模式,而且每次都是在新文件打开匿名函数.

(function anonymous(
) {
debugger
})

接下来,让我们一起探索这种方式能起什么作用吧!

实验

基于闭包逻辑自动执行代码块,同时设置延时debugger逻辑,也可以死循环直接搞崩溃浏览器.

(() => {
    function ban() {
      setInterval(() => {
        debugger;
      }, 50);
    }
    try {
      ban();
    } catch (err) { }
})();

然后你将收获点不完的下一步,这是最直观的效果.

其实,破解这种方式也很简单,因为是断点 debugger 在作祟,那就禁用或者忽略断点调试功能即可.

  • 禁用断点Deactivate breakpoints(Ctrl + F8)

亲测有效,这也是最简单直接的破解方式,禁用断点调试,可以破解绝大部分这类的反爬手段.

  • 添加日志断点Add logpoint

  • 在这从不暂停Never pause here

  • 加入到忽略脚本列表Add script to ignore list

加入忽略列表后,Source源码选项卡底部会有忽略列表配置项提示也可以移除忽略列表.

通过上述方式禁用断点再点击 Resume Script Execution(F8) 按钮继续脚本执行,然后即使再次刷新网站,也不会无限debugger断点调试了.

除了第一个禁用断点全局生效,其他方式只针对单个debugger有用!

(() => {
  function ban() {
    setInterval(() => { debugger; }, 50);
  }
  try {
    ban();
  } catch (err) { }
})();

升级

通过上述的实验,我们发现有很多种方式都可以跳出无限 debugger 的怪圈.

那就继续想办法升级改造,继续在debugger身上动脑筋,具体来说.

解决方案: 将 debugger 替换成 Function('debugger')()

这种Function构造器生成的 debugger 会在每一次执行时开启一个临时 js 文件

(() => {
  function ban() {
    setInterval(() => {
      Function('debugger').call();
    }, 50);
  }
  try {
    ban();
  } catch (err) { }
})();

这种方式只有禁用断点Deactivate breakpoints(Ctrl + F8)一种方式可以破解,其余在断点位置右键菜单选项均失效!

总结

从简单的debugger引起重视,到闭包自执行逻辑改造成无限debugger模式,最后到临时文件中打开匿名函数.

这种升级改造不能说没什么用,只能算是用处不大,单一的方式不足以做到反爬,还是要全方位考虑.

最后,由于本人才疏学浅,暂时只能想到这么三种方式禁止打开开发者控制台,组合在一起还是能发挥一定作用的!

如果你有什么好的想法和思路,欢迎在评论区留言,大家一起交流!

放心留言,开启了自动留言精选,保证上墙哟~

往期精彩文章

欢迎扫码关注

微信公众号「雪之梦技术驿站」

欢迎扫码关注,私信回复『加群』一起交流技术

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

snowdreams1006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值