微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用javascript关闭浏览器开发者控制台?

如何解决如何使用javascript关闭浏览器开发者控制台?

我们可以使用以下方法打开浏览器开发控制台:

F12Ctrl+Shift+CCtrl+Shift+I和...

我阻止了右键单击以及使用此代码的那些键:

    document.addEventListener('contextmenu',function(e) {
        e.preventDefault();
    });

    document.onkeydown = function(e) {
        if(event.keyCode == 123) {
            console.log('You cannot inspect Element');
            return false;
        }
        if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) {
            console.log('You cannot inspect Element');
            return false;
        }
        if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) {
            console.log('You cannot inspect Element');
            return false;
        }
        if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) {
            console.log('You cannot inspect Element');
            return false;
        }
        if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) {
            console.log('You cannot inspect Element');
            return false;
        }
    }
    // prevents right clicking
    document.addEventListener('contextmenu',e => e.preventDefault());

现在假设开发者控制台已经打开,并且我们的页面正在加载, 当页面加载时,我想以编程方式使用javascript关闭此开发人员控制台窗口。这可能吗?

解决方法

我认为阻止开发者控制台是完全不可能的,即使使用您建议的方法,用户也可以使用Chrome并重新映射开发者控制台热键以打开它。 Hell,even a Facebook engineer had tried to do it in the Facebook site but gave up

我的建议是在控制台中添加一条警告消息,并警告用户不要在其中键入任何内容,这也是大型站点也在做的事情。或者您可以极端地做console = null,因为大多数注入脚本包含或多或少的console.log,这会破坏它们的脚本,不利之处是您也无法做到console.log除非您手动注入console

,

我认为这是不可能的,因为您将修改浏览器的行为,这显然不会让您这样做。但是,我不确定100%是否如此,我认为让网站未经授权修改浏览器的行为是安全漏洞。

即使有可能,也有很多人可以绕开它,例如禁用javascript或在其末端注入脚本以删除事件侦听器,从而使他可以访问DevTools。

此外,如果您试图阻止某人看到您的HTML源代码(根据我在您发布的代码段中看到的内容),那么某人可以仅通过简单的GET请求下载源代码,并使用自己的工具进行查看

总而言之,一旦它最终出现在他人的浏览器上,他们几乎可以对您提供的内容进行任何处理。这就是为什么不应将前端视为“安全”的唯一层。您可以让用户很难去做您不希望他们做的事情,但是您永远不能完全阻止他们。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。