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

JS禁止web页面调试

前言

由于前端在页面渲染的过程中 会调用很多后端的接口,而有些接口是不希望别人看到的,所以前端调用后端接口的行为动作就需要做一个隐藏。

禁用右键菜单

document.oncontextmenu = function() {console.log("禁用右键菜单");return false;
};

禁用F12

 document.onkeydown = document.onkeyup = document.onkeypress = function(event) {let e = event || window.event || arguments.callee.caller.arguments[0];if (e && e.keyCode == 123) {e.returnValue = false;return false;}
};

禁用开发者工具

实际开发中有多少实现方案,这里我们使用的是 无限debugger

大概实现思路:

因为 debugger; 打断点代码 只有在 控制台被打开的时候 才会执行。
所以 写一个无限debugger, 当控制台被打开时,程序被 debugger 阻止,
故而 网页的请求也是看不到的,也 无法进行 手打断点调试。

基础版

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

增强版

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

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

终极版

1、提升 增强版 的写法

Function('debugger')();改写为:
(function () {return false;
}
['constructor']('debugger')
['call']());

2、在 增强版 的基础上 加上 DOM尺寸判断,进而 检测 控制台是否被打开

(() => {function block() {// 控制台的 高度 或者 宽度 大于 200px时 则 满足条件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) { }
})();

说句题外话:
写到这 突然想到一句对于程序员来说很搞笑的话: 一个Bug是Bug, 一堆Bug能work。
请添加图片描述
当然,我们的目标就是消灭每一个Bug!!!加油

相关文章:

JS禁止web页面调试

前言 由于前端在页面渲染的过程中 会调用很多后端的接口,而有些接口是不希望别人看到的,所以前端调用后端接口的行为动作就需要做一个隐藏。 禁用右键菜单 document.oncontextmenu function() {console.log("禁用右键菜单");return false;…...

GIt分支合并

分支 1: C0 → C1 → C2 → C3(最新) 分支 2: C0 → C4 → C5 → C6(最新)1. 找到共同父节点 C0 Git 会先找出 branch1 和 branch2 的共同祖先节点 C0。这通常借助 git merge-base 命令达成,虽然在日常使用 git merge…...

Sqli-labs

1.搭建【前提是已经下载安装好phpstudy_pro】 1.1源码准备 1.1.1源码下载 这里从github下载 https://codeload.github.com/Audi-1/sqli-labs/zip/masterhttps://codeload.github.com/Audi-1/sqli-labs/zip/master 1.1.2下载的靶场源码放到WWW下 将刚才下载的压缩包解压到…...

unreal engine gameplay abiliity 获取ability的cooldown剩余时间

unreal engine gameplay abiliity 获取ability的cooldown 版本 5.4.4 参考 测试代码 if (HasAuthority() && AbilitySystemComponent){TArray<FGameplayAbilitySpecHandle> OutAbilityHandles;AbilitySystemComponent->GetAllAbilities(OutAbilityHandles…...

【GenBI优化】提升text2sql准确率:建议使用推理大模型,增加重试

引言 Text-to-SQL(文本转 SQL)是自然语言处理(NLP)领域的一项重要任务,旨在将自然语言问题自动转换为可在数据库上执行的 SQL 查询语句。这项技术在智能助手、数据分析工具、商业智能(BI)平台等领域具有广泛的应用前景,能够极大地降低数据查询和分析的门槛,让非技术用…...

【六祎 - Note】SQL备忘录;DDL,DML,DQL,DCL

SQL备忘录 from to : 点击访问源地址...

高频 SQL 50 题(基础版)_1341. 电影评分

高频 SQL 50 题&#xff08;基础版&#xff09;_1341. 电影评分 思路 思路 (select Users.name results from Users left join MovieRating on Users.user_id MovieRating.user_id group by(Users.name) order by count(MovieRating.movie_id) desc,Users.name asc limit 1) u…...

JavaScript 变量命名规范

在编写JavaScript代码时&#xff0c;选择合适的变量名对于代码的清晰度、可读性和可维护性至关重要。一个良好的变量命名规范不仅能帮助团队成员更好地理解代码意图&#xff0c;还能减少错误发生的可能性。本文将介绍一些广泛接受的JavaScript变量命名规则和最佳实践。 命名的…...

解决 uView-UI和uv-ui 中 u-tabs 组件在微信小程序中出现横向滚动条的问题

问题描述 在微信小程序中使用 uView-UI 的 u-tabs 组件时&#xff0c;用户可能会遇到横向滚动条的问题。这不仅影响了页面的美观&#xff0c;还可能导致用户误操作。 问题原因 该问题的根本原因是未在微信小程序环境下屏蔽滚动条。uView-UI 的 u-tabs 组件默认只在 H5 环境下…...

20250304解决在飞凌的OK3588-C的Linux R4下解决使用gstreamer保存的mp4打不开

sync poweroff rootok3588:/# sync rootok3588:/# sync rootok3588:/# cd 107 rootok3588:/107# ls -l total 0 rootok3588:/107# sync rootok3588:/107# poweroff 20250304解决在飞凌的OK3588-C的Linux R4下解决使用gstreamer保存的mp4打不开 2025/3/4 10:58 缘起&#xff1a…...

build gcc

1&#xff0c;下载源码 wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2 wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz git clone --mirror https://github…...

【每日论文】How far can we go with ImageNet for Text-to-Image generation?

下载PDF或查看论文&#xff0c;请点击&#xff1a;LlamaFactory - huggingface daily paper - 每日论文解读 | LlamaFactory | LlamaFactory 摘要 近年来&#xff0c;通过在大规模数据集上训练&#xff0c;文本到图像&#xff08;T2I&#xff09;生成模型已经取得了显著成果&a…...

STM32 两个单片机之间的通信

STM32 两个单片机之间的通信 原创 HS 平凡灵感码头 2025年03月04日 11:25 广东 以上我们就是有A B两个板子来进行通信&#xff0c;A板将接收按键的键值&#xff0c;然后发送给B板&#xff0c;B板接收键值&#xff0c;然后判断键值控制LED翻转&#xff0c;然后把键值按字符形式…...

Linux 下使用traceroute来进行网络诊断分析

简介 traceroute 命令是一种网络诊断工具&#xff0c;用于跟踪数据包从系统到目标服务器的路径。它有助于识别网络延迟和路由问题。 安装 Debian/Ubuntu sudo apt install traceroute -yRHEL/CentOS sudo yum install traceroute -yFedora sudo dnf install traceroute -…...

基于vue框架的游戏商城系统cq070(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,分类,商品信息,游戏高手,游戏代练 开题报告内容 基于Vue框架的游戏商城系统开题报告 一、研究背景与意义 随着互联网技术的飞速发展和游戏产业的蓬勃兴起&#xff0c;游戏商城作为游戏产业链中的重要一环&#xff0c;迎来了前所…...

SpringBoot接入DeepSeek(硅基流动版)+ 前端页面调试(WebSocket连接模式)

文章目录 前言正文一、项目环境二、项目代码2.1 pom.xml2.2 DeepSeekController.java2.3 启动类2.4 logback-spring.xml2.5 application.yaml2.6 WebsocketConfig.java2.7 AiChatWebSocketHandler.java2.8 SaveChatSessionParamRequest.java2.9 index.html 三、页面调试3.1 主页…...

idea实现热部署

1.在pom.xml文件添加依赖 java <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency> 更新可见配置成功&#xff1a; 2.在appli…...

记一次误禁用USB导致键盘鼠标失灵的修复过程

背景说明 在电脑上插入了一个USB hub&#xff0c;然后弹窗提示&#xff1a;“集线器端口上出现电涌”&#xff0c;点开让选择“重置”或者“关闭”&#xff0c;不小心点了关闭&#xff0c;结果这个usb口就被关了&#xff0c;再插任何东西都没反应&#xff0c;找了很多办法都恢…...

0x03 http协议和分层架构

HTTP协议 简介 Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议&#xff1a;面向连接&#xff0c;安全基于请求-响应模型&#xff1a;一次请求对应一次响应HTTP协议是无状态的协议&#xff…...

【leetcode hot 100 189】轮转数组

错误解法一&#xff1a;申请一个数组&#xff0c;第i个数放在新数组的ik或ik-nums.length上 class Solution {public void rotate(int[] nums, int k) {int[] resultsnew int[nums.length];for(int i0; i<nums.length; i){if(ik<nums.length){results[ik] nums[i];}els…...

别再手动算日期了!SQL Server里DATEDIFF和DATEADD的5个实战场景,数据分析师必看

SQL Server日期处理实战&#xff1a;DATEDIFF与DATEADD的5个高阶应用场景 在数据分析与报表开发领域&#xff0c;时间维度永远是核心要素之一。无论是用户行为分析、业务指标计算还是系统自动化处理&#xff0c;精准的日期运算能力直接决定了数据价值的挖掘深度。作为SQL Serve…...

ESP32 ADC采样避坑大全:从WiFi冲突到内存爆炸,我的五个实战教训(附代码)

ESP32 ADC采样避坑实战指南&#xff1a;从硬件冲突到代码优化的深度解析 在物联网设备开发中&#xff0c;ADC&#xff08;模数转换器&#xff09;作为连接物理世界与数字世界的桥梁&#xff0c;其性能直接影响着数据采集的准确性。ESP32作为一款高性价比的Wi-Fi/蓝牙双模芯片&a…...

C#从零开始学习笔记---第七天

不是同样的时间&#xff0c;不是同样的笔记&#xff0c;但是同样的作者。新的一天&#xff0c;欢迎收看我的学习笔记吼吼~我们昨天最后留了两道题&#xff0c;不知道大家做的怎么样&#xff0c;我现在来公布一下答案&#xff0c;但因为1000个人心里有1000个哈姆雷特&#xff0c…...

CanMV K230 家用电器电流识别 预告

数据采集&#xff1a;家用电器电流采集 数据分析&#xff1a;电流波形与特征 识别方法&#xff1a; 硬件设置&#xff1a; 算法部署&#xff1a; 电器可能包括&#xff1a;手机充电器、电脑、电视、热水壶等...

QQ音乐解析终极指南:如何免费获取全网音乐资源

QQ音乐解析终极指南&#xff1a;如何免费获取全网音乐资源 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic 你是否厌倦了音乐平台的层层限制&#xff1f;想要畅听所有歌曲却不想支付高昂的会员费&#xff1f;Q…...

C AI 编程助手:助力开发者高效编程

C AI 编程助手:助力开发者高效编程 引言 随着人工智能技术的飞速发展,编程领域也迎来了新的变革。C AI 编程助手作为一种新兴的智能编程工具,旨在帮助开发者提高编程效率,降低开发成本。本文将详细介绍C AI 编程助手的功能、优势以及应用场景,帮助开发者更好地了解这一创…...

内核漏洞利用入门:从用户态到内核态的完整提权链分析

1. 项目概述&#xff1a;从一道题看内核漏洞利用的基石最近在整理资料时&#xff0c;翻到了一个非常经典的入门级内核pwn题目。说它“十分基础”&#xff0c;是因为它几乎涵盖了从用户态程序漏洞利用转向内核态漏洞利用时&#xff0c;所有必须跨越的第一个门槛。对于习惯了栈溢…...

【生产力跃升】Claude Code v2.1.143:允许禁用工作树隔离,插件依赖链强制执行与后台 Agent 补强

前言作为一款工业级的 AI 编程助手&#xff0c;Claude Code 的高频迭代一直在解决复杂工程中的痛点。在最新的 v2.1.143 版本中&#xff0c;开发团队带来了一项重磅底层配置&#xff1a;允许关闭后台 Agent 的 Git 工作树&#xff08;Worktree&#xff09;隔离。此外&#xff0…...

5分钟解锁学术付费墙:Unpaywall浏览器扩展让你的研究之路畅通无阻

5分钟解锁学术付费墙&#xff1a;Unpaywall浏览器扩展让你的研究之路畅通无阻 【免费下载链接】unpaywall-extension Firefox/Chrome extension that gives you a link to a free PDF when you view scholarly articles 项目地址: https://gitcode.com/gh_mirrors/un/unpaywa…...

Linux内核动态调试技术:pr_debug与dynamic_debug实战指南

1. 动态输出&#xff1a;内核调试的“可控探针”在Linux内核开发与调试的日常里&#xff0c;最让人头疼的莫过于“日志”问题。printk虽然直接&#xff0c;但一旦开启&#xff0c;信息洪流会瞬间淹没控制台&#xff0c;不仅影响性能&#xff0c;更让你在关键信息里大海捞针。更…...