当前位置: 首页 > news >正文

【前端】禁止别人调试自己的前端页面代码

  1. 无限debugger
  • 前端页面防止调试的方法主要是通过不断 debugger 来疯狂输出断点,因为 debugger 在控制台被打开的时候就会执行
  • 由于程序被 debugger 阻止,所以无法进行断点调试,所以网页的请求也是看不到的
  • 代码如下:

/**
* 基础禁止调试代码
*/
(() => {
 function ban() {
   setInterval(() => {
     debugger;
   }, 50);
 }
 try {
   ban();
 } catch (err) { }
})();

2. 无限debugger对策

2.1 可以通过控制台中的按钮或者使用快捷键 Ctrl + F8 关闭无限 debugger

*注意:这种方式虽然能去掉碍眼的 debugger,但是无法通过左侧的行号添加 breakpoint

2.2 添加 logpoint 为 false

选择对应的代码行,通过添加logpoint为 false,然后按回车

2.3 添加忽略执行代码行或文件

找到对应的代码行右键‘向忽略列表添加脚本’

3. 对 logpoint 为 false 的对策

将debugger代码写成一行,此时就算是使用代码格式化也无用

  1. 对忽略执行的对策

可以将 debugger 改写成 Function("debugger")();

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

5. 监听控制台打开修改页面内容

<script>
  (() => {
    function block() {
      if (window.outerHeight - window.innerHeight > 200 || window.outerWidth - window.innerWidth > 200) {
        document.body.innerHTML = "检测到非法调试,请关闭后刷新重试!";
      }
      setInterval(() => {
        (function () {
            return false;
          }
          ['constructor']('debugger')['call']());
      }, 50);
    }
    try {
      block();
    } catch (err) {}
  })();
</script>

6.其他防调试技术
6.1. 禁止右键菜单

document.oncontextmenu = function () {
    return false;
};
document.oncontextmenu = new Function("event.returnValue=false");

6.2. 禁止F12快捷键

// 禁止 F12 快捷键
document.onkeydown = document.onkeyup = document.onkeypress = function () {if (window.event.keyCode == 123) {
        window.event.returnValue = false;}
}
document.onkeydown = () => {//禁用F12if (window.event && window.event.keyCode == 123) {return false;//禁用ctrl+shift+i,} else if (window.event.ctrlKey && window.event.shiftKey && window.event.keyCode == 73) {return false;//屏蔽Shift+F10} else if (window.event.shiftKey && window.event.keyCode == 121) {return false;}
};

相关文章:

【前端】禁止别人调试自己的前端页面代码

无限debugger 前端页面防止调试的方法主要是通过不断 debugger 来疯狂输出断点&#xff0c;因为 debugger 在控制台被打开的时候就会执行由于程序被 debugger 阻止&#xff0c;所以无法进行断点调试&#xff0c;所以网页的请求也是看不到的代码如下&#xff1a; /** * 基础禁止…...

UDP的可靠性传输

UDP系列文章目录 第一章 UDP的可靠性传输-理论篇&#xff08;一&#xff09; 第二章 UDP的可靠性传输-理论篇&#xff08;二&#xff09; 文章目录 UDP系列文章目录前言1.TCP 和UDP格式对比2.UDP分片原理3.UDP 传输层应该注意问题4.MTU5.UDP 分片机制设计重点 一、ARQ协议什么…...

科研笔记:TPAMI submission guideline

1 author information Author Information - IEEE Transactions on Pattern Analysis and Machine Intelligence | IEEE Computer Society Digital Library 1.1 会议期刊extension 当一个TPAMI的提交基于之前的会议论文时&#xff0c;IEEE要求期刊论文是之前出版物的“实质…...

Python文件操作(02):打开文件、读文件、关闭文件

一、读文本文件 打开文件读文件内容关闭文件 1、在读取文件内容后进行解码操作 """ 1. 打开文件- 路径&#xff1a;相对路径&#xff1a;当前项目&#xff08;读文件.py&#xff09;所在的目录下查找需要读取的文件绝对路径&#xff1a;文件--右键--Copy Pat…...

C语言访问Mysql

文章目录 C语言访问Mysql1. 环境设置2. mysql接口介绍(1) 初始化mysql_init()(2) 链接数据库mysql_real_connect(3) 下发mysql命令mysql_query()(4) 获取执行结果mysql_store_result(5) 释放结果集mysql_free_result()(6) 获取结果行数mysql_num_rows(7) 获取结果列数mysql_num…...

软件设计师(十)网络与信息安全基础知识

计算机网络是由多台计算机组成的系统&#xff0c;与传统的单机系统、多机系统相比有很大的区别。 一、网络概述 计算机网络是计算机技术与通信技术相结合的产物&#xff0c;它实现了远程通信、远程信息处理和资源共享。 1、计算机网络的概念 计算机网络的定义是利用通信设备…...

蓝桥杯官网填空题(换零钞)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 X 星球的钞票的面额只有&#xff1a;100 元&#xff0c;5 元&#xff0c;2 元&#xff0c;1 元&#xff0c;共 4 种。 小明去 X 星旅游&#xff0c;他手里只有 2 张…...

JavaFX之Stage

Stage&#xff08;舞台&#xff09;&#xff0c;它代表了一个顶级窗口&#xff0c;是JavaFX应用程序的主要容器。Stage可以包含多个场景&#xff08;Scene&#xff09;&#xff0c;每个场景可以包含各种用户界面元素&#xff08;如按钮、文本框等&#xff09;。Stage提供了许多…...

深度翻页导出导致慢SQL,mysqlCPU飙升优化方案

慢SQL原因分析&#xff1a; 1.深度翻页 2.多表JOIN 3. 大IN 4. id倒排序 本文针对深度翻页的优化进行探讨 方案1&#xff1a; 将limit offset, pageSize的方式改成 id > xx limit pageSize. 这样能走Id索引&#xff0c;提高速度。 缺点&#xff1a;不能使用多线程…...

小谈设计模式(1)—总序

小谈设计模式&#xff08;1&#xff09;—总序 开始操作设计模式总论设计模式是什么组成要素模式名称问题描述解决方案效果描述 设计模式有什么作用提供可重用的解决方案提高代码的可读性和可维护性促进代码的可扩展性提高代码的灵活性和可重用性促进团队合作和沟通作用总结 为…...

【c++】stringstream基础:实现数据类型转换和字符串分割

传统实现整型转换为字符串需要使用itoa或者sprintf&#xff0c;对于itoa和atoi的使用可以看文章&#xff1a; atoi和itoa极简无废话概述 但是用这两个函数进行转换时&#xff0c;所需要的空间事先不确定&#xff0c;所以可能造成程序崩溃&#xff0c;今天介绍的stringstream可…...

Java基础学习笔记-5

前言 Java编程语言是一门广泛应用于软件开发领域的高级编程语言。它的强大特性和跨平台性使其成为许多开发者的首选语言。本文将介绍一些Java编程的关键概念&#xff0c;包括函数重载、可变参数、值传递、递归等&#xff0c;这些概念是Java编程的基础&#xff0c;对于理解和掌…...

合同交付类项目如何高效管理?

美国项目管理协会(PMI)保罗格蕾斯曾说:“当今社会,一切都是项目,一切也将成为项目。”在“万事皆项目”的背景下&#xff0c;企业在运营过程中会产生大量的项目型业务活动&#xff0c;例如&#xff1a;举办市场活动、产品研发、进行企业内训、采购招标、工程建设等等。那么按照…...

两性养生网站源码 生活类减肥网站源码 健康网模板源码 支持QQ登录和百度主动推送

本套模板非常适合生活类&#xff0c;两性类&#xff0c;减肥类等等类型的网站&#xff0c;这类型网站比较好做流量&#xff0c;因为客户群体众多&#xff0c; 可以自行改内容为其他类型网站模板总体非常简洁漂亮&#xff0c;配色合理&#xff0c;视觉舒服&#xff0c;并且配合…...

CentOS7安装Jenkins(更改默认运行的端口号8080->16060)

第一步&#xff1a; 端口号为默认8080 的安装是&#xff1a;Jenkins安装配置 第二步&#xff1a;将默认运行端口8080—>16060 首先修改配置文件 修改配置文件&#xff1a;vi /etc/sysconfig/jenkins修改内容&#xff1a;# 服务监听端口JENKINS_PORT"16060"然后…...

Java开发之Mysql【面试篇 完结版】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、知识体系二、Mysql-优化1. 优化-如何定位慢查询① 问题引入② 解决方案③ 问题总结④ 实战面试 2. 优化-sql执行很慢&#xff0c;如何解决① 问题引入② 解…...

【实战】十二、自动化测试 —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十九)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

【人月神话】重新探索人月神话:软件工程的现实与挑战

人月神话是一篇由美国软件工程师弗雷德里克布鲁克斯所写的软件工程经典之作&#xff0c;最早发表于1975年。这篇文章的全名是《人月神话&#xff1a;软件工程的神话与现实》&#xff08;The Mythical Man-Month: Essays on Software Engineering&#xff09;&#xff0c;它涵盖…...

电阻和电容

目录 1、常见的电阻器 2、电容 ​编辑 1、常见的电阻器 对于电阻需要了解三个参数&#xff08;查询电阻的数据手册&#xff09;&#xff1a; 1、封装&#xff1a;就是电阻的尺寸或者大小&#xff0c;看焊在你的pcb板上是否合适。 2、标称&#xff1a;电阻的电阻大小、精度、…...

01-Java-日志框架

1 日志技术概述 1.1 什么是日志技术 ​ 日志技术是一种记录和存储应用程序运行时信息的技术。它可以捕获应用程序的状态、事件、错误和警告等信息&#xff0c;并将其保存到日志文件或其他存储介质中。日志技术可以帮助开发人员和运维团队了解应用程序的运行情况&#xff0c;进…...

【js】map、filter、reduce、fill(待补充...)

const arr [{ id: 1, flag: true },{ id: 2, flag: true },{ id: 3, flag: false },{ id: 4, flag: true }, ]map&#xff1a;返回的是对每个元素进行操作后的结果数组&#xff0c;这个数组的长度和原数组相同 const result arr.map((item: any) > {return item.flag fa…...

【JPC出版】第二届能源与电力系统国际学术会议 (ICEEPS 2023)

第二届能源与电力系统国际学术会议 (ICEEPS 2023) 2023 2nd International Conference on Energy and Electrical Power Systems 第二届能源与电力系统国际学术会议 (ICEEPS 2023)将于2023年10月27日至29日在中国厦门举行。ICEEPS 将汇集能源科学、电气工程和电力系统领域的…...

51单片机的简易篮球计分器倒计时仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机的简易篮球计分器倒计时仿真设计( proteus仿真程序原理图报告讲解视频&#xff09; 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接 51单片机的简易篮球计分器倒计时仿真设计( proteus仿真程序原理图报告讲解视频…...

医院安全不良事件报告系统源码 PHP+ vue2+element+ laravel8+ mysql5.7+ vscode开发

不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”&#xff0c;结合预存上百套已正在使用的模板&#xff0c;帮助医院从对护理事件、药品事件、医疗器械事件、医院感染事件、输血事件、意…...

Mybatis -- 读取 DATE 类型字段时可能遇到的问题(夏令时问题)

在使用 MYBATIS 读取数据库字段的时候&#xff0c;我们一般需要为查询字段指定数据类型。特别是当我们使用 mybatis generator 去生成对应的接口代码时&#xff0c;会自动按照数据库字段类型生成响应映射规则的代码。   如下&#xff0c;左侧是 date 类型生成的字段映射规则&…...

第10节-PhotoShop基础课程-选区工具

文章目录 前言1.矩形选区 shift 是正方形1.任意比例2.等比绘制 先点击再按shift3.中心绘制1.任意比例 先点击再按Alt2.等比绘制 先点击再按Alt Shift 4.移动选区 按住空格 2.椭圆选区1.椭圆选区2.正圆选区 shift键3.中心圆选区 Alt Shift 3.选取选项1. 选区1.建立选区2.加选 s…...

【C++】C++动态内存管理

&#x1f3f3;️‍&#x1f308;C/C内存分布 说明&#xff1a; 1.我们的代码并非放在代码段里的&#xff0c;而是以文件的形式存在磁盘上的。 代码经过编译链接形成的二进制指令&#xff0c;才是放进代码段里的。&#xff08;即可执行代码&#xff09; 2.“abcd”如果没有被c…...

Java中使用JTS实现WKT字符串读取转换线、查找LineString的list中距离最近的线、LineString做缓冲区扩展并计算点在缓冲区内的方位角

场景 Java中使用JTS对空间几何计算(读取WKT、距离、点在面内、长度、面积、相交等)&#xff1a; Java中使用JTS对空间几何计算(读取WKT、距离、点在面内、长度、面积、相交等)_jts-core_霸道流氓气质的博客-CSDN博客 JavaGeoTools实现WKT数据根据EPSG编码进行坐标系转换&…...

【异步VS多线程】异步VS多线程区别

异步VS多线程区别 1、异步 异步概念&#xff1a;异步是并发编程的一种形式&#xff0c;在同一时刻可以独立于主程序外&#xff0c;可以并发执行另外一些任务。异步的实现方式有两种&#xff1a; 第一种&#xff1a;通过 async TASK来实现异步&#xff0c;第二种&#xff1a;通…...

【nosql】redis之高可用(主从复制、哨兵、集群)搭建

redis群集有三种模式 redis群集有三种模式&#xff0c;分别是主从同步/复制、哨兵模式、Cluster集群&#xff0c;下面会讲解一下三种模式的工作方式&#xff0c;以及如何搭建cluster群集 ●主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从…...

建设银行招标网站/深圳网络推广专员

返回目录 今天写缓存篇的第一篇文章&#xff0c;在写完目录后&#xff0c;得到了一些朋友的关注&#xff0c;这给我之后的写作带来了无穷的力量&#xff0c;在这里&#xff0c;感谢那几位伙伴&#xff0c;哈哈&#xff01; 书归正传&#xff0c;今天我带来一个Static静态成员的…...

长沙品质网站建设优点/如何自己建一个网站

写在本文开头&#xff0c;本文所涉及的卡通渲染技术仅使用了基于UE4的蓝图并在后处理阶段完成。因此在许多方面做不到非常深的自定义化&#xff0c;如需要对卡通渲染进行深度自定义的操作&#xff0c;本人还是建议修改引擎添加光照模型以实现卡通渲染。本文谈论的是偏General的…...

wordpress更换域名所有页面404/企业网站的搜索引擎推广与优化

概述&#xff1a;Spark 程序开发&#xff0c;调试和运行&#xff0c;intellij idea开发Spark java程序。 分两部分&#xff0c;第一部分基于intellij idea开发Spark实例程序并在intellij IDEA中运行Spark程序.第二部分&#xff0c;将开发程序提交到Spark local或者hadoop YARN…...

iis7搭建网站织梦/宁波seo推广联系方法

省市级联//定义一个保存所有城市的数组var arys [["北京","天津","重庆","上海"],["长沙","株洲","湘潭","娄底","岳阳"],["东莞","佛山","中山",…...

如何做凡客网站/口碑营销策略有哪些

在之前我们只用过父传子&#xff0c;子传父进行传数据&#xff0c;这时候当组件嵌套比较深或比较复杂的情况&#xff0c;这时候就用到了事件总线 (EventBus) 如何理解事件总线呢&#xff0c;你可以理解为用来传输数据的一条线 注意点&#xff1a;有组件发布事件后 剩余的所有…...

怎么把网站加入黑名单/软文发布平台排名

在各种场合遇到其他产品的开发人员时&#xff0c;大家总忍不住想在技术上切磋两招。第一句问的通常都是“你们产品的崩溃率是多少&#xff1f;”程序员 A 自豪地说&#xff1a; “百分之一。”旁边的程序员 B 鄙视地看了一眼&#xff0c;然后喊到&#xff1a; “千分之一&#…...