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

如何防止用户打开浏览器开发者工具?

大家好,我是前端西瓜哥。作为一名前端开发,在浏览一些网页时,有时会在意一些交互效果的实现,会打开开发者工具查看源码实现。

但有些网站做了防窥探处理,打开开发者工具后,会无法再正常进行网页的操作。

它是怎么做到的呢?

debugger

首先是给代码加 debugger。

debugger 是 JavaScript 中的关键字,用于在代码中设置断点。

在代码执行到 debugger 所在位置时会停止,此时上下文还保留着。此时我们可以查看一些变量的值,以及一点点地往下执行,看看是否进入正确的条件分支、变量是否正确等。

但前提是已经打开了开发者工具

所以我们用一个定时器不停地执行 debugger 就行。

setInterval(() => {debugger;
}, 4000);

如果用户不打开开发者工具,debugger 会被浏览器忽略。

如果打开了,就会正常执行 debugger 给你的页面打一个断点,导致你无法操作页面。即使你跳过,因为定时器的存在,等下还会给你打上断点。

考虑到定时器不停执行可能会影响性能,所以不要设置太短,4s 应该差不多。

一个使用了该方案的动漫网站。

函数调用栈的始端使用了 setInterval 定时器。

发现一个有趣的点,就是我用苹果笔记本打开开发者工具,再关闭后,光标会变成默认样式,并再也无法改变光标样式了。大概是浏览器的 bug?不知道有没有读者知道是为什么。

结尾

这是一个比较简单的方案。另外推荐看看 disable-devtool 库,支持比较多的配置,也可以看看它是怎么检测用户打开开发者工具行为的发生的。

我是前端西瓜哥,欢迎关注我,学习更多前端知识。

http://www.lryc.cn/news/30824.html

相关文章:

  • C语言-基础了解-12-C数组
  • RocksDB 架构
  • MVVM和MVC的区别
  • c++11 标准模板(STL)(std::unordered_map)(三)
  • OpenGL环境配置
  • SpringCloud之 Eureka注册中心
  • Linux入门篇-用户管理
  • G. Special Permutation(构造)
  • QML动态对象管理
  • cmake入门03 -自定义find外部库
  • Dubbo源码解析-——服务导出
  • vue+django+neo4j 基于知识图谱红楼梦问答系统
  • 2023年全国最新食品安全管理员精选真题及答案13
  • Keychron K7 Pro 轻薄矮轴机械键盘开箱体验
  • 加油站ai视觉识别系统 yolov7
  • 【电子学会】2022年12月图形化二级 -- 绘制风车
  • 【golang/go语言】Go语言代码实践——高复用、易扩展性代码训练
  • [数据结构与算法(严蔚敏 C语言第二版)]第1章 绪论(学习复习笔记)
  • 05_Pulsar的主要组件介绍与命令使用、名称空间、Pulsar的topic相关操作、Pulsar Topic(主题)相关操作_高级操作、
  • 我的终端怎么莫名卡死了?shell下ctrl+s的含义
  • 【Vue】Vue的简单介绍与基本使用
  • 网络知识篇
  • python 连接数据库
  • 一文讲明白一致性hash算法
  • Java分布式解决方案(一)
  • 设备树系统学习(二)设备树的节点和属性
  • 【数据结构】二叉树的基本操作中的一些易错点
  • 在线图书借阅网站( Python +Vue 实现)
  • 不平衡数据集的建模的技巧和策略
  • 3. 算法效率