写点什么

【JS】防止浏览器控制台被直接查看(2)

用户头像
学习委员
关注
发布于: 2021 年 01 月 12 日
【JS】防止浏览器控制台被直接查看(2)

前文再续,书接上一回:【JS】防止浏览器控制台被直接查看(1)


上次讲到 17素材网 是通过监听用户按下 F12 来避免控制台被查看。


这次要讲的网站是:seeocean


这个网站提供了很多盗版的 mac 应用我们支持正版!

同时这个网站监听的不是按下 F12 ,而是监听控制台是否被打开了。



当我打开控制台,网站立刻进入 debugger 模式。


当我按继续运行时,会弹出以下提示。


下面的代码就是 seeocean 这个网站检测控制台是否被打开的代码。

((function() {    var callbacks = [],        timeLimit = 50,        open = false;    setInterval(loop, 1);    return {        addListener: function(fn) {            callbacks.push(fn);        },        cancleListenr: function(fn) {            callbacks = callbacks.filter(function(v) {                return v !== fn;            });        }    }    function loop() {        var startTime = new Date();        debugger;        if (new Date() - startTime > timeLimit) {            if (!open) {                callbacks.forEach(function(fn) {                    fn.call(null);                });            }            open = true;            window.stop();            alert('不要扒我了');            window.location.reload();        } else {            open = false;        }    }})()).addListener(function() {    window.location.reload();});
复制代码


其实如果不想被直接看到控制台,还可以在 seeocean 的基础上做得更绝。


  1. 首先是用上一讲的方法禁止用户按下 F12

  2. 监听打开控制台的快捷键,并禁止。

  3. 修改鼠标右键默认事件。

  4. 监听控制台是否被打开。

  5. 当控制台被打开,就自动刷新当前页面。


但这样用户就可能就进入死循环,只有关掉控制台或者关掉浏览器,重新打开该网站才能访问了。需要自己衡量好用户体验。


发布于: 2021 年 01 月 12 日阅读数: 34
用户头像

学习委员

关注

反派 2019.03.19 加入

哈哈哈哈哈哈哈哈哈哈哈哈哈哈

评论

发布
暂无评论
【JS】防止浏览器控制台被直接查看(2)