1前言

看到社区很多都在讨论如何调试,如何高级的调试,以及一些调试的奇技淫巧,今天我想和大家聊聊,怎么禁止调试,禁止他人调试我们的程序

为什么会有这篇文章呢,源自一次我寻找盗版电影的遭遇,一次好奇心的驱使下,由于很多这种平台都是只做搬运,不做存储,因为存储盗版电影向他人提供是违法的,特别是那种刚出的新电影! 当时好奇想通过看某站的控制台,想了解一下他们是怎么是通过啥接口,怎么请求,请求来的格式啥样的,抱着这样的好奇心,开始了我的奇妙之旅...

看完本篇文章你将学会
我无法断定你能学到什么,但是以下是我希望你能从本篇文章中学到的:

  1. 如何简单的防止你的程序被他人恶意调试

  2. 逆向思维学会如何更好的调试

2具体实现

防止调试的方法,这里我们主要是通过不断debugger的方法来疯狂输出断点,让控制台打开后程序就无法正常执行
我们都知道debugger只有在控制台被打开的时候才会执行,所以后面的所有方法都是围绕着这一特性来进行,废话不多说,我将通过以下几个案例向你们展示道高一尺魔高一丈的道理,先上代码:

方法一:

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

通过上方的代码我们可以看到,在页面中打开控制台后,会有以下结果:

需要在这里说明以下几点:

  1. 程序被debugger阻泄了,我们无法像以往一样在 Source Tab 中的对应 js 代码处添加断点调试,无法调试程序的执行逻辑.在程序异常复杂且被混淆后的代码是异常难读的!通常我们会在 source 的左边加上 breakpoint 来让程序每次走到加点的地方停下来,以便让我们查看一些变量的值或是步骤的流程逻辑(如下图所示)

  1. 我们都知道,第一次打开控制台是看不到 network tab 中的任何请求的,所以我们想通过 network tab 来查看网页都做了哪些请求,也是看不到的,当我们打开控制台就会出debugger阻挡我们,我们可以通过下面的解决方法来处理,或者是用抓包工具来查看具体的请求

大家可以先不看解决方法,想想如果是你,这个时候怎么突破这个屏障呢? 第一次遇到这种情况我也是很懵,不知道咋处理,后面发现问题简直不要太简单,我们可以带着疑问来看:

对于第一个示例,我们如何解决?(绕过它)

答案是: 禁止断点

可以看到很简单,在 Chrome 控制台的 Source Tab 页点击 Deactivate breakpoints 按钮或者按下 Ctrl + f8(如下图所示)。但是对于控制台不熟悉的小伙伴,很难会想到这里去.

但是,难道这篇文章就这样结束了?那我可顶不住小伙伴们的 "就这?"

【Web技术】1352- 如何防止他人恶意调试你的web程序相关推荐

  1. 2020年每个Web开发人员必须知道的9种Web技术

    Web开发附带了每个网站开发人员都应了解的大量规则和技术.如果你希望网站按其期望的外观和功能运行,则需要熟悉可帮助您实现目标的网络技术. 开发应用或网站通常归结为三种主要语言:JavaScript,C ...

  2. HTTP权威指南(国内首本HTTP及其相关核心Web技术权威著作)

    <HTTP权威指南>(国内首本HTTP及其相关核心Web技术权威著作) 基本信息 原书名:HTTP:The Definitive Guide 作者: (美)古尔利(Gourley,D.) ...

  3. 深入分析Java Web技术内幕pdf

    下载地址:网盘下载 内容简介  · · · · · · <深入分析Java Web技术内幕(修订版)>新增了淘宝在无线端的应用实践,包括:CDN 动态加速.多终端化改造. 多终端Sessi ...

  4. 【前端】一、web技术基础

    放在最前:很长一段时间没有更新了,因为我暂时没有在做UIpath那家公司继续干下去了,然后又有做毕设.找工作种种事务,就耽搁了.然后我现在又加入了一家公司做前端,所以以后会经常更新一些前端的内容,我也 ...

  5. PWA(Progressive web apps):Web技术实现类似原生应用 - 入门

    PWA(Progressive web apps):Web技术实现类似原生应用 - 入门简介 前言 在(使用Google浏览器)访问一些网站时,有时右上角会弹出"安装应用"的按钮. ...

  6. Web技术是开发iOS和Android App

    如果说以前的微信公众号还是一个媒体化的平台,那么2016年的公众号会有一种新的形态,叫应用号.应用号预示着比公众号更强大的功能.更优质的体验以及更丰富的服务.应用号的出现是微信产品的一次重大升级,无论 ...

  7. JSP与Web技术概论

    Web应用程序开发基础知识 Web结构 ​ Web主要由两个部分组成,提供信息的Web服务的服务器端网站及向网站提出信息内容浏览要求的客户端浏览器. 服务器端网站存放包含各种形态的多媒体信息网页 客户 ...

  8. Java Web技术经验总结(二)

    该系列的第一篇在此:Java Web技术经验总结一,主要包含我在日常工作中的经验和心得体会(如有不足之处欢迎指出). Maven的使用经验 依赖的scope有test.provided.compile ...

  9. python界面开发 web_使用 web 技术构建 python 的 GUI 界面

    一般来说,选择用于应用程序的 GUI 工具箱会是一个棘手的事情,Python 也不例外.对于 Python 来说,可以选择的工具箱种类繁多.就我所知道的而言,比较常用的就有 TkInter, wxPy ...

  10. 前端web 技术盘点

    尽管前端技术在无线领域受到了挫折,但这无法减缓其发展势头.在基础技术方面,规范和标准的发展.浏览器的快速演进为将来的Web应用打好了根基:随着网站规模的进一步变大,交互变得更复杂,大家更关注用新的开发 ...

最新文章

  1. CentOS系列启动流程详解
  2. 第十四章 梁山好汉中谁最惹人爱
  3. ARP协议详解之ARP动态与静态条目的生命周期
  4. mysql的count()函数如何选择索引,千万级表的count()查询优化实例
  5. Spring-引用Bean的属性值
  6. Flutter 完美的验证码输入框(2 种方法)
  7. 编写uwsgi后台启动文件
  8. 小扎不哭!FB又陷数据泄露风波,9000万用户受影响
  9. linux 字符设备号分配状况
  10. PHPStrom 使用技巧以及基本设置教程【更新完结】
  11. IT男的”幸福”生活续8
  12. OUTLOOK2019 解决 无法验证您连接到的服务器使用的安全证书
  13. 【HCIE 论述题】OSPF-1(区域划分)
  14. Visual Studio 2019 离线注册方法记录
  15. Vue动态加载并注册组件
  16. 炸弹小分队-超详细开服教程,教你如何开炸弹小分队服务器公开派对房间
  17. 根据城市的名称获取省份的名称
  18. expect巡检服务器_linux 巡检报告
  19. 电影票房预测-kaggle项目Python项目
  20. 05 pyecharts 基本图表(示例代码+效果图)

热门文章

  1. 微信小程序腾讯地图控制 4G Cat.1模组 ,安信可CA-01加载定位显示当前位置。
  2. 《Multi-Stream Gated and Pyramidal Temporal Convolutional Neural Networksfor Audio-Visual Speech Se》
  3. ssb的有效性最好_在AM、DSB、SSB、FM系统中,有效性最好的是AM
  4. 一张纸厚度是多少毫米_一张A4纸的厚度是多少mm?
  5. html左边是菜单右边是内容,左首菜单栏右侧内容
  6. java生成二维码QRcode方式
  7. 苹果手机开机一会显示无服务器,苹果手机出现无信号的解决方法
  8. android本地视频 投屏,小米投屏神器
  9. Oracle PL/SQL 循环
  10. 人脸对齐:Wing Loss人脸关键点检测算法2018