开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6131|回复: 51
打印 上一主题 下一主题
收起左侧

[Web源码] Javascript反调试实现判断用户是否打开了浏览器控制台

[复制链接]

结帖率:100% (1/1)
跳转到指定楼层
楼主
发表于 2024-8-19 18:32:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式   广东省广州市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
本帖最后由 郝单纯💋 于 2024-8-20 11:15 编辑

前言

晓杰最近在研究如何防止用户恶意调试前端网页代码,防止打开控制台进行调试,首先禁用了浏览器页面右键事件和F12等快捷键!然后利用了创建元素是否成功方式进行校验,具体实现代码如下。

代码HTML中插入代码

<script disable-devtool-auto src='https://cdn.jsdelivr.net/npm/disable-devtool'></script>
<script >
document.addEventListener('keydown', function(event) {
    // 检查 F12 键
    if (event.key === 'F12') {
        event.preventDefault();
    }
    // 检查 Ctrl + Shift + I 组合键
    if (event.ctrlKey && event.shiftKey && event.key === 'i') {
        event.preventDefault();
    }
    // 检查 Ctrl + Shift + J 组合键
    if (event.ctrlKey && event.shiftKey && event.key === 'j') {
        event.preventDefault();
    }
    // 检查 Ctrl + Shift + C 组合键
    if (event.ctrlKey && event.shiftKey && event.key === 'c') {
        event.preventDefault();
    }
});
document.addEventListener('contextmenu', function(event) {
    event.preventDefault();
});
var ConsoleManager={
    onOpen(){
    },
    onClose(){
    },
    init(){
        var self = this;
        var x = document.createElement('div');
        var isOpening = false,isOpened=false;
        Object.defineProperty(x, 'id', {
            get(){
                if(!isOpening){
                    self.onOpen();
                    isOpening=true;
                }
                isOpened=true;
            }
        });
        setInterval(function(){
            isOpened=false;
            console.info(x);
            console.clear();
            if(!isOpened && isOpening){
                self.onClose();
                isOpening=false;
            }
        },200)
    }
}
//检测到打开 直接跳转到其他网址 或者做其他方式自己改
ConsoleManager.onOpen = function(){
    location.href="https://125.confly.eu.org/";
}
ConsoleManager.init();
DisableDevtool({
    ondevtoolopen: (type) => {
        const info = 'devtool opened!; type =' + type;
        },
})
</script>

示例地址

https://pan.metanetdisk.com/

本文作者

Soujer





点评

view-source: 只能看到源码无法进行调试   广东省广州市  发表于 2024-8-20 08:51
网址前面加:view-source: 就能看了   福建省莆田市  发表于 2024-8-20 06:18
大家看看如果还能调出控制台跟我反馈,我这边再研究   广东省广州市  发表于 2024-8-19 18:34

评分

参与人数 3好评 +2 精币 +3 收起 理由
kyo9766 + 1 感谢分享,很给力!~
cbcweb + 1 感谢分享,但说实话一点意义都没有
baitso + 1 + 2 支持开源~!感谢分享

查看全部评分


签到天数: 24 天

沙发
发表于 2024-8-19 18:48:06 | 只看该作者   广东省广州市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:83% (10/12)

签到天数: 4 天

板凳
发表于 2024-8-19 18:54:51 | 只看该作者   江苏省苏州市
能打开啊
回复 支持 反对

使用道具 举报

结帖率:83% (10/12)

签到天数: 4 天

地板
发表于 2024-8-19 18:55:59 | 只看该作者   江苏省苏州市

回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 22 天

地下
发表于 2024-8-19 18:59:54 | 只看该作者   安徽省黄山市
先在别的网页打开控制台,然后再打开你这个网址,控制依然在
回复 支持 反对

使用道具 举报

结帖率:80% (12/15)

签到天数: 17 天

6
发表于 2024-8-19 19:02:46 | 只看该作者   安徽省淮南市
打开浏览器,正常界面打开控制台,然后再访问
回复 支持 反对

使用道具 举报

结帖率:80% (12/15)

签到天数: 17 天

7
发表于 2024-8-19 19:16:22 | 只看该作者   安徽省淮南市
纯闲的,介意就删
新建 文本文档.txt (673 Bytes, 下载次数: 2)
回复 支持 反对

使用道具 举报

结帖率:94% (17/18)

签到天数: 20 天

8
发表于 2024-8-19 20:17:30 | 只看该作者   广东省深圳市
右上角直接打开,没任何反应
回复 支持 反对

使用道具 举报

9
发表于 2024-8-19 20:43:20 | 只看该作者   广东省深圳市
你这个不行啊,可以弄一个函数调用debugger然后用定时器检查是否超时,超时就说明debugger卡住了也就是打开了控制台(没实战过,yy出来的方案)
回复 支持 反对

使用道具 举报

结帖率:53% (16/30)

签到天数: 23 天

10
发表于 2024-8-19 20:44:30 | 只看该作者   江苏省无锡市
无痕访问,就能正常进了,昨天刚给朋友测试了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表