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

防止用户调试网页的若干方法

1、禁用鼠标右键

document.addEventListener('contextmenu', function (e) {
    e.preventDefault();
});

2、禁止F12或其他打开调试面板的快捷键

document.addEventListener('keydown', function (event) {
    if (event.key == "F12" || (event.ctrlKey && event.shiftKey && (event.key === 'I' || event.key === 'C'))) {
        event.preventDefault(); // F12, Control+Shift+I, Control+Shift+C
    }
}, true);

3、debugger检测

setInterval(() => {
    let yy1 = performance.now();
    debugger;
    let yy2 = performance.now();
    if (yy2 - yy1 > 111) {
        window.location.href = 'about:blank';
    }
}, 1111);

performance.now()返回高精度时间戳

打开调试面板时会停留在debugger行,从而导致if成立。

4、判断当前环境,并整合代码

// stop.js
if (process.env.NODE_ENV == 'production') {
    setInterval(() => {
        let yy1 = performance.now();
        debugger;
        let yy2 = performance.now();
        if (yy2 - yy1 > 111) {
            window.location.href = 'about:blank';
        }
    }, 1111);
    document.addEventListener('contextmenu', function (e) {
        e.preventDefault();
    });

    document.addEventListener('keydown', function (event) {
        if (event.key == "F12" || (event.ctrlKey && event.shiftKey && (event.key === 'I' || event.key === 'C'))) {
            event.preventDefault(); // F12, Control+Shift+I, Control+Shift+C
        }
    }, true);
}

最后在main.js中引入,就完成了

5、局限性

即便禁用鼠标右键、F12、快捷键,浏览器仍然能打开调试面板

打开之后还能通过下面这个按钮禁用断点,所有的努力白费~~~

所以前端的代码运行在魔鬼计算机上,后端安全才是王道~~~


http://www.kler.cn/a/591602.html

相关文章:

  • 数据结构 -- 树和二叉树
  • 从盒马看新零售:战略调整背后的零售行业风向-亿发
  • kafka指北
  • 快速进行数据验证的优雅实现-注解
  • 从PLC到云端:5G嵌入式网关的MQTT协议转换与Ubuntu二次开发全解析
  • VLLM:虚拟大型语言模型(Virtual Large Language Model)
  • AI Agent如何通过自然语言处理提升交互体验
  • 【图像处理】ISP(Image Signal Processor) 图像处理器的用途和工作原理?
  • 机器学习 [白板推导](二)[线性回归]
  • 【Go】运算符笔记
  • 安装并使用anaconda(宏观版)
  • HTML,CSS,JavaScript
  • 微服务即时通信系统---(五)框架学习
  • 解决Spring Boot中Chrome浏览器Session ID频繁变动的问题
  • 基于 ELK、Python、OLaMA 和飞书群的 AI 自动化巡检方案
  • Druid 连接池工具类及其在企业级应用中的实践
  • Linux IP 配置
  • QT 学习笔记2
  • win/linux开机启动exe程序
  • AT指令集-NBIOT