破解网站禁止打开控制台的方法

7,194 阅读1分钟

当遇到一个网站想要打开控制台调试的时候,却发现点击F12之后,页面就进行了跳转,导致我们没法打开控制台。

导致页面无法打开的代码如下:(注意: 该代码仅在chrome下有效)

(() => {
    var t = 0;
    var e = new Date;
    e.toString = function() {
         if (++t > 1) {
            window.location.href = "www.baidu.com";
         }
    }
    console.log(e);
})()

原理: 为什么这段代码就能在控制台打开时就跳转到其他页面?

当第一次代码加载的时候,t + 1 === 1, 所以页面不会跳转。
由于e对象被console.log引用, 所以e对象不会被释放。
当打开控制台时,e.toString被再次执行,t = 2, 页面跳转代码执行。

经过尝试,找到了两种破解方法:

破解方法很简单,只要用到浏览器书签栏,万能的书签不仅可以存储链接,还可以执行 JS 代码
新建一个新的书签,把js语句写到书签内容中就行。

  1. 通过清空console语句
javascript:console.clear();
  1. 通过监听beforeunload事件
window.addEventListener(
    'beforeunload',
    function (e) { 
        e.preventDefault();e.returnValue = '' 
    });

通过监听 beforeunload 事件并指定 returnValue,这样当我们打开控制台时,浏览器会在网页跳转前询问是否离开此网页,点击取消即可留在当前页面了。

新建书签的办法:

  1. 点击浏览器右上角的三点-点击书签-点击书签管理器

image.png

  1. 点击书签页右上角的三点, 再点击添加新书签

image.png image.png

  1. 将语句放到网址里面,点击保存即可