精易论坛

标题: Javascript反调试实现判断用户是否打开了浏览器控制台 [打印本页]

作者: 郝单纯💋    时间: 2024-8-19 18:32
标题: Javascript反调试实现判断用户是否打开了浏览器控制台
本帖最后由 郝单纯💋 于 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







作者: baitso    时间: 2024-8-19 18:48
支持开源~!感谢分享
作者: lufanjingyi    时间: 2024-8-19 18:54
能打开啊
作者: lufanjingyi    时间: 2024-8-19 18:55


作者: Ddtian稻田网络    时间: 2024-8-19 18:59
先在别的网页打开控制台,然后再打开你这个网址,控制依然在
作者: 阿白不爱吃菜    时间: 2024-8-19 19:02
打开浏览器,正常界面打开控制台,然后再访问
作者: 阿白不爱吃菜    时间: 2024-8-19 19:16
纯闲的,介意就删
新建 文本文档.txt (673 Bytes, 下载次数: 2)

作者: 洋滨    时间: 2024-8-19 20:17
右上角直接打开,没任何反应
作者: 1435990998    时间: 2024-8-19 20:43
你这个不行啊,可以弄一个函数调用debugger然后用定时器检查是否超时,超时就说明debugger卡住了也就是打开了控制台(没实战过,yy出来的方案)
作者: chenyuqi1230    时间: 2024-8-19 20:44
无痕访问,就能正常进了,昨天刚给朋友测试了
作者: 艾玛克138    时间: 2024-8-19 20:45
刚好学到这,东西拿走
作者: chenyuqi1230    时间: 2024-8-19 20:46
chenyuqi1230 发表于 2024-8-19 20:44
无痕访问,就能正常进了,昨天刚给朋友测试了

而且你这个,在浏览器地址,按下f12 也能搞定,更用不到无痕了
作者: 活佛济公    时间: 2024-8-19 20:50
鼠标放网址栏 直接f12就出来了
作者: ttggnn    时间: 2024-8-19 21:04

感谢分享
作者: (ΘζΘ)    时间: 2024-8-19 21:10
没啥用啊。只要你是js,应该就能用插件先把你代码里禁用的部分再启用。
作者: 天线宝宝520    时间: 2024-8-19 22:12
        支持开源~!感谢分享
作者: qingqingqp    时间: 2024-8-19 22:21
有没有有可能你的js是可以被浏览器修改的
作者: lity2310    时间: 2024-8-19 23:26
依然可以打开啊啊~

12121212.png (213.33 KB, 下载次数: 48)

12121212.png

作者: 五花牛    时间: 2024-8-19 23:33
睡前看到了,试一试

作者: 用户名205252    时间: 2024-8-19 23:34
检测debugger就行了 但是也还是能绕过 无所谓了其实 给人看的就避免不了了
作者: bianyuan456    时间: 2024-8-20 01:20
已经顶贴,感谢您对论坛的支持!
作者: 易语音卫道者    时间: 2024-8-20 02:46
这个我喜欢啊
作者: renhe2018    时间: 2024-8-20 04:11
这样一来,会不会挨揍。哈哈
作者: Awesome·LYG    时间: 2024-8-20 07:51
所以检查快捷键有啥用。。。

作者: year1970    时间: 2024-8-20 08:05
感谢分享
作者: 郝单纯💋    时间: 2024-8-20 08:50
view-source:  只能查看源码 无法进行调试
作者: 郝单纯💋    时间: 2024-8-20 08:55
Awesome·LYG 发表于 2024-8-20 07:51
所以检查快捷键有啥用。。。

我擦,奇怪 360急速浏览器可以检测到 谷歌居然能绕过
作者: 一指温柔    时间: 2024-8-20 08:56
感谢分享
作者: 无敌灰灰    时间: 2024-8-20 09:41
别自己写了,直接用这个
https://github.com/theajack/disable-devtool

作者: 郝单纯💋    时间: 2024-8-20 10:52
无敌灰灰 发表于 2024-8-20 09:41
别自己写了,直接用这个

感谢 我测下
作者: 郝单纯💋    时间: 2024-8-20 11:09
Awesome·LYG 发表于 2024-8-20 07:51
所以检查快捷键有啥用。。。

再试下
作者: Awesome·LYG    时间: 2024-8-20 16:05
郝单纯&#128139; 发表于 2024-8-20 11:09
再试下


这不还是。。。

作者: 郝单纯💋    时间: 2024-8-20 17:04
Awesome·LYG 发表于 2024-8-20 16:05
这不还是。。。

????
作者: 郝单纯💋    时间: 2024-8-20 17:08
Awesome·LYG 发表于 2024-8-20 16:05
这不还是。。。


我测试直接这样啊,你是屏蔽拦截了那个检测js加载了吧

作者: LLZWWY    时间: 2024-8-20 17:17
感谢大佬无私分享
作者: Awesome·LYG    时间: 2024-8-20 18:22
本帖最后由 Awesome·LYG 于 2024-8-20 18:26 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=28749161&ptid=14832058]郝单纯

开发人员工具.gif (2.44 MB, 下载次数: 47)

开发人员工具.gif

2.png (372.13 KB, 下载次数: 44)

2.png

作者: 艾玛克138    时间: 2024-8-20 21:58
老大出品,必属精品
作者: 一指温柔    时间: 2024-8-21 08:51
感谢分享
作者: 郝单纯💋    时间: 2024-8-21 09:17

浏览器什么版本
作者: Awesome·LYG    时间: 2024-8-21 10:02

Microsoft Edge
版本 127.0.2651.105 (正式版本) (64 位)
作者: kyo9766    时间: 2024-8-21 10:04
学习一下怎么监控,感谢分享
作者: 郝单纯💋    时间: 2024-8-21 11:10
Awesome·LYG 发表于 2024-8-21 10:02
Microsoft Edge
版本 127.0.2651.105 (正式版本) (64 位)

奇怪我跟你一样的版本啊,你是不是有缓存啥的 CTRL+F5一下


作者: 13817321991    时间: 2024-8-21 11:32
66666666666666
作者: Awesome·LYG    时间: 2024-8-21 16:27
本帖最后由 Awesome·LYG 于 2024-8-21 16:31 编辑



无痕模式不会加载js

ctrl+F5刷新的会检测开发人员工具自动关闭页面。
但是再次打开,开发人员工具正常可以打开
也就是说有且只有ctrl+F5刷新的同时才会检测到,你正常打开页面不刷新是检测不到的

作者: 396384183    时间: 2024-8-22 00:05

坚持学习,支持论坛
作者: please    时间: 2024-8-22 09:37
感谢分享,支持开源!!!
作者: 郝单纯💋    时间: 2024-8-22 10:47
Awesome·LYG 发表于 2024-8-21 16:27
无痕模式不会加载js

ctrl+F5刷新的会检测开发人员工具自动关闭页面。

复现不出来 能远程我复现一下吗 看我资料栏有QQ
作者: 熊不熊    时间: 2024-12-4 17:18
感谢分享,很给力!~




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4