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

Vue禁止打开控制台/前端禁止打开控制台方法/禁用F12/禁用右键

代码片段展示了如何在前端页面中禁用右键菜单、禁止文本选择、阻止特定键盘操作(如F12键打开开发者工具),以及通过检测窗口尺寸变化来尝试阻止用户调试页面。

 // 鼠标禁止右键禁止打开控制台及键盘禁用
    forbidden(){
       // 1.禁用右键菜单
      document.oncontextmenu = new Function("event.returnValue=false");
      // 2.禁用鼠标选中
      document.onselectstart = new Function("event.returnValue=false");

      document.onkeydown = () => {
        console.log(window.event.keyCode);
        if(window.event && window.event.keyCode == 123) {
          return false;
        }
      }
    },

    // 禁止别人调试前端页面代码‌,使用无限debugger‌
    pageTable(){
      /** 页面模块 */
      const block = () => {
        if (window.outerHeight - window.innerHeight > 200 || window.outerWidth - window.innerWidth > 200) {
          document.body.innerHTML = "检测到非法调试,请关闭后刷新重试!";
          document.body.style.display = 'flex'
          document.body.style.justifyContent = 'center'
          document.body.style.alignItems = 'center'
        }
        setInterval(() => {
          (function () {
            return false;
          }
          ['constructor']('debugger')
          ['call']());
        }, 50);
      }
      /** 禁止调试 */
      const banDebugging = () => {
        try {
          block();
        } catch (err) {
          console.log({ err })
        }
      }

      let threshold = 160 // 打开控制台的宽或高阈值
      window.setInterval(function() {
        if (window.outerWidth - window.innerWidth > threshold ||
          window.outerHeight - window.innerHeight > threshold) {
          // 如果打开控制台,则禁止
          banDebugging();
        }
      }, 1000)
    }
  • 认识到完全防止前端页面被调试是不可能的。即使是最复杂的反调试技术,经验丰富的开发者也能找到绕过的方法。

  • 专注于保护敏感数据和逻辑,而不是试图阻止调试。例如,通过服务器端验证和加密来保护敏感信息。


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

相关文章:

  • 俏美韵从心出发,与女性一道为健康生活贡献力量
  • SciPy:Python 科学计算工具包的全面教程
  • Kubernetes在容器编排中的应用
  • 彻底理解ARXML中的PDU
  • OpenGL【C++】台灯
  • 第二节 OSI-物理层
  • 如何设置docker的定时关闭和启动
  • MCU的OTA升级(未完-持续更新)
  • 19. 异常处理
  • 2.4_SSRF服务端请求伪造
  • Docker lmdeploy 快速部署Qwen2.5模型openai接口
  • PHP静默活体识别API接口应用场景与集成方案
  • 常用的c++新特性-->day03
  • 持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)
  • C++高级编程(8)
  • unity3d————屏幕坐标,GUI坐标,世界坐标的基础注意点
  • PHP API的数据交互类型设计
  • 短视频矩阵系统的源码, OEM贴牌源码
  • LSM树 (Log-Structured Merge Tree)、Cuckoo Hashing详细解读
  • ubuntu 22.04 server 安装 和 初始化 LTS
  • 基于Springboot+Vue的心理咨询系统 (含源码数据库)
  • Qt的C++中实现一个文本转语音(TTS)系统
  • XXL-TOOL v1.3.1 发布 | Java工具类库(Excel、Pipeline、Fiber…)
  • Kafka中如何做到数据唯一,即数据去重?
  • 新手用docker真**难受
  • react 18 react-router-dom V6 路由传参的几种方式