始皇这波操作没看懂【附带解决办法】

首先我访问直接被重定向到了 /forbidden.html ,后面发现是前端检测,直接找到重定向的js给他重定向机制修改了,直接删除t函数内容


然后修改配置

后面发现正常访问,但是有时白屏,发现这个网页在自动完成turnstile,直接给turnstile请求拦截了会白屏,所以直接拦截cf的turnstile加载器


解决办法:
1.在控制台的 源代码 页面找到这个js,右键 - 替代内容

用下面修补过的js覆盖

!function(e, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).DisableDevtool = t()
}(this, function() {
    "use strict";
    function o(e) {
        return (o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
            return typeof e
        }
        : function(e) {
            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
        }
        )(e)
    }
    function i(e, t) {
        if (!(e instanceof t))
            throw new TypeError("Cannot call a class as a function")
    }
    function r(e, t) {
        for (var n = 0; n < t.length; n++) {
            var i = t[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(e, i.key, i)
        }
    }
    function u(e, t, n) {
        t && r(e.prototype, t),
        n && r(e, n),
        Object.defineProperty(e, "prototype", {
            writable: !1
        })
    }
    function e(e, t, n) {
        t in e ? Object.defineProperty(e, t, {
            value: n,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : e[t] = n
    }
    function n(e, t) {
        if ("function" != typeof t && null !== t)
            throw new TypeError("Super expression must either be null or a function");
        e.prototype = Object.create(t && t.prototype, {
            constructor: {
                value: e,
                writable: !0,
                configurable: !0
            }
        }),
        Object.defineProperty(e, "prototype", {
            writable: !1
        }),
        t && a(e, t)
    }
    function c(e) {
        return (c = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) {
            return e.__proto__ || Object.getPrototypeOf(e)
        }
        )(e)
    }
    function a(e, t) {
        return (a = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) {
            return e.__proto__ = t,
            e
        }
        )(e, t)
    }
    function H(e, t) {
        if (t && ("object" == typeof t || "function" == typeof t))
            return t;
        if (void 0 !== t)
            throw new TypeError("Derived constructors may only return object or undefined");
        t = e;
        if (void 0 === t)
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
        return t
    }
    function l(n) {
        var i = function() {
            if ("undefined" == typeof Reflect || !Reflect.construct)
                return !1;
            if (Reflect.construct.sham)
                return !1;
            if ("function" == typeof Proxy)
                return !0;
            try {
                return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})),
                !0
            } catch (e) {
                return !1
            }
        }();
        return function() {
            var e, t = c(n);
            return H(this, i ? (e = c(this).constructor,
            Reflect.construct(t, arguments, e)) : t.apply(this, arguments))
        }
    }
    function f(e, t) {
        (null == t || t > e.length) && (t = e.length);
        for (var n = 0, i = new Array(t); n < t; n++)
            i[n] = e[n];
        return i
    }
    function s(e, t) {
        var n, i = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
        if (!i) {
            if (Array.isArray(e) || (i = function(e, t) {
                if (e) {
                    if ("string" == typeof e)
                        return f(e, t);
                    var n = Object.prototype.toString.call(e).slice(8, -1);
                    return "Map" === (n = "Object" === n && e.constructor ? e.constructor.name : n) || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? f(e, t) : void 0
                }
            }(e)) || t && e && "number" == typeof e.length)
                return i && (e = i),
                n = 0,
                {
                    s: t = function() {}
                    ,
                    n: function() {
                        return n >= e.length ? {
                            done: !0
                        } : {
                            done: !1,
                            value: e[n++]
                        }
                    },
                    e: function(e) {
                        throw e
                    },
                    f: t
                };
            throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
        }
        var o, r = !0, u = !1;
        return {
            s: function() {
                i = i.call(e)
            },
            n: function() {
                var e = i.next();
                return r = e.done,
                e
            },
            e: function(e) {
                u = !0,
                o = e
            },
            f: function() {
                try {
                    r || null == i.return || i.return()
                } finally {
                    if (u)
                        throw o
                }
            }
        }
    }
    function t() {

    }
    var d = {
        md5: "",
        ondevtoolopen: t,
        ondevtoolclose: null,
        url: "",
        timeOutUrl: "",
        tkName: "ddtk",
        interval: 500,
        disableMenu: !1,
        stopIntervalTime: 5e3,
        clearIntervalWhenDevOpenTrigger: !1,
        detectors: [0, 1, 3, 4, 5, 6, 7],
        clearLog: !1,
        disableSelect: !1,
        disableCopy: !1,
        disableCut: !1,
        disablePaste: !1,
        ignore: null,
        disableIframeParents: !1,
        seo: !0,
        rewriteHTML: ""
    }
      , U = ["detectors", "ondevtoolclose", "ignore"];
    function q(e) {
        var t, n = 0 < arguments.length && void 0 !== e ? e : {};
        for (t in d) {
            var i = t;
            void 0 === n[i] || o(d[i]) !== o(n[i]) && -1 === U.indexOf(i) || (d[i] = n[i])
        }
        "function" == typeof d.ondevtoolclose && !0 === d.clearIntervalWhenDevOpenTrigger && (d.clearIntervalWhenDevOpenTrigger = !1,
        console.warn("【DISABLE-DEVTOOL】clearIntervalWhenDevOpenTrigger 在使用 ondevtoolclose 时无效"))
    }
    function v() {
        return (new Date).getTime()
    }
    function h(e) {
        var t = v();
        return e(),
        v() - t
    }
    function z(n, i) {
        function e(t) {
            return function() {
                n && n();
                var e = t.apply(void 0, arguments);
                return i && i(),
                e
            }
        }
        var t = window.alert
          , o = window.confirm
          , r = window.prompt;
        try {
            window.alert = e(t),
            window.confirm = e(o),
            window.prompt = e(r)
        } catch (e) {}
    }
    var p, y, B, b = {
        iframe: !1,
        pc: !1,
        qqBrowser: !1,
        firefox: !1,
        macos: !1,
        edge: !1,
        oldEdge: !1,
        ie: !1,
        iosChrome: !1,
        iosEdge: !1,
        chrome: !1,
        seoBot: !1,
        mobile: !1
    };
    function W() {
        function e(e) {
            return -1 !== t.indexOf(e)
        }
        var t = navigator.userAgent.toLowerCase()
          , n = function() {
            var e = navigator
              , t = e.platform
              , e = e.maxTouchPoints;
            if ("number" == typeof e)
                return 1 < e;
            if ("string" == typeof t) {
                e = t.toLowerCase();
                if (/(mac|win)/i.test(e))
                    return !1;
                if (/(android|iphone|ipad|ipod|arch)/i.test(e))
                    return !0
            }
            return /(iphone|ipad|ipod|ios|android)/i.test(navigator.userAgent.toLowerCase())
        }()
          , i = !!window.top && window !== window.top
          , o = !n
          , r = e("qqbrowser")
          , u = e("firefox")
          , c = e("macintosh")
          , a = e("edge")
          , l = a && !e("chrome")
          , f = l || e("trident") || e("msie")
          , s = e("crios")
          , d = e("edgios")
          , v = e("chrome") || s
          , h = !n && /(googlebot|baiduspider|bingbot|applebot|petalbot|yandexbot|bytespider|chrome\-lighthouse|moto g power)/i.test(t);
        Object.assign(b, {
            iframe: i,
            pc: o,
            qqBrowser: r,
            firefox: u,
            macos: c,
            edge: a,
            oldEdge: l,
            ie: f,
            iosChrome: s,
            iosEdge: d,
            chrome: v,
            seoBot: h,
            mobile: n
        })
    }
    function M() {
        for (var e = function() {
            for (var e = {}, t = 0; t < 500; t++)
                e["".concat(t)] = "".concat(t);
            return e
        }(), t = [], n = 0; n < 50; n++)
            t.push(e);
        return t
    }
    function w() {
        B()
    }
    var K = ""
      , V = !1;
    function F() {
        var e = d.ignore;
        if (e) {
            if ("function" == typeof e)
                return e();
            if (0 !== e.length) {
                var t = location.href;
                if (K === t)
                    return V;
                K = t;
                var n, i = !1, o = s(e);
                try {
                    for (o.s(); !(n = o.n()).done; ) {
                        var r = n.value;
                        if ("string" == typeof r) {
                            if (-1 !== t.indexOf(r)) {
                                i = !0;
                                break
                            }
                        } else if (r.test(t)) {
                            i = !0;
                            break
                        }
                    }
                } catch (e) {
                    o.e(e)
                } finally {
                    o.f()
                }
                return V = i
            }
        }
    }
    var X = function() {
        return !1
    };
    function g(n) {
        var t, e, i = 74, o = 73, r = 85, u = 83, c = 123, a = b.macos ? function(e, t) {
            return e.metaKey && e.altKey && (t === o || t === i)
        }
        : function(e, t) {
            return e.ctrlKey && e.shiftKey && (t === o || t === i)
        }
        , l = b.macos ? function(e, t) {
            return e.metaKey && e.altKey && t === r || e.metaKey && t === u
        }
        : function(e, t) {
            return e.ctrlKey && (t === u || t === r)
        }
        ;
        n.addEventListener("keydown", function(e) {
            var t = (e = e || n.event).keyCode || e.which;
            if (t === c || a(e, t) || l(e, t))
                return T(n, e)
        }, !0),
        t = n,
        d.disableMenu && t.addEventListener("contextmenu", function(e) {
            if ("touch" !== e.pointerType)
                return T(t, e)
        }),
        e = n,
        d.disableSelect && m(e, "selectstart"),
        e = n,
        d.disableCopy && m(e, "copy"),
        e = n,
        d.disableCut && m(e, "cut"),
        e = n,
        d.disablePaste && m(e, "paste")
    }
    function m(t, e) {
        t.addEventListener(e, function(e) {
            return T(t, e)
        })
    }
    function T(e, t) {
        if (!F() && !X())
            return (t = t || e.event).returnValue = !1,
            t.preventDefault(),
            !1
    }
    var O, D = !1, S = {};
    function N(e) {
        S[e] = !1
    }
    function $() {
        for (var e in S)
            if (S[e])
                return D = !0;
        return D = !1
    }
    (_ = O = O || {})[_.Unknown = -1] = "Unknown",
    _[_.RegToString = 0] = "RegToString",
    _[_.DefineId = 1] = "DefineId",
    _[_.Size = 2] = "Size",
    _[_.DateToString = 3] = "DateToString",
    _[_.FuncToString = 4] = "FuncToString",
    _[_.Debugger = 5] = "Debugger",
    _[_.Performance = 6] = "Performance",
    _[_.DebugLib = 7] = "DebugLib";
    var k = function() {
        function n(e) {
            var t = e.type
              , e = e.enabled
              , e = void 0 === e || e;
            i(this, n),
            this.type = O.Unknown,
            this.enabled = !0,
            this.type = t,
            this.enabled = e,
            this.enabled && (t = this,
            Q.push(t),
            this.init())
        }
        return u(n, [{
            key: "onDevToolOpen",
            value: function() {
                var e;
                console.warn("You don't have permission to use DEVTOOL!【type = ".concat(this.type, "】")),
                d.clearIntervalWhenDevOpenTrigger && te(),
                window.clearTimeout(J),
                d.ondevtoolopen(this.type, t),
                e = this.type,
                S[e] = !0
            }
        }, {
            key: "init",
            value: function() {}
        }]),
        n
    }()
      , G = function() {
        n(t, k);
        var e = l(t);
        function t() {
            return i(this, t),
            e.call(this, {
                type: O.DebugLib
            })
        }
        return u(t, [{
            key: "init",
            value: function() {}
        }, {
            key: "detect",
            value: function() {
                var e;
                (!0 === (null == (e = null == (e = window.eruda) ? void 0 : e._devTools) ? void 0 : e._isShow) || window._vcOrigConsole && window.document.querySelector("#__vconsole.vc-toggle")) && this.onDevToolOpen()
            }
        }], [{
            key: "isUsing",
            value: function() {
                return !!window.eruda || !!window._vcOrigConsole
            }
        }]),
        t
    }()
      , Y = 0
      , J = 0
      , Q = []
      , Z = 0;
    function ee(o) {
        function e() {
            l = !0
        }
        function t() {
            l = !1
        }
        var n, i, r, u, c, a, l = !1;
        function f() {
            (a[u] === r ? i : n)()
        }
        z(e, t),
        n = t,
        i = e,
        void 0 !== (a = document).hidden ? (r = "hidden",
        c = "visibilitychange",
        u = "visibilityState") : void 0 !== a.mozHidden ? (r = "mozHidden",
        c = "mozvisibilitychange",
        u = "mozVisibilityState") : void 0 !== a.msHidden ? (r = "msHidden",
        c = "msvisibilitychange",
        u = "msVisibilityState") : void 0 !== a.webkitHidden && (r = "webkitHidden",
        c = "webkitvisibilitychange",
        u = "webkitVisibilityState"),
        a.removeEventListener(c, f, !1),
        a.addEventListener(c, f, !1),
        Y = window.setInterval(function() {
            if (!(o.isSuspend || l || F())) {
                var e, t, n = s(Q);
                try {
                    for (n.s(); !(e = n.n()).done; ) {
                        var i = e.value;
                        N(i.type),
                        i.detect(Z++)
                    }
                } catch (e) {
                    n.e(e)
                } finally {
                    n.f()
                }
                w(),
                "function" == typeof d.ondevtoolclose && (t = D,
                !$() && t && d.ondevtoolclose())
            }
        }, d.interval),
        J = setTimeout(function() {
            b.pc || G.isUsing() || te()
        }, d.stopIntervalTime)
    }
    function te() {
        window.clearInterval(Y)
    }
    function ne(e) {
        return 'd41d8cd98f00b204e9800998ecf8427e'
    }
    var _ = function() {
        n(t, k);
        var e = l(t);
        function t() {
            return i(this, t),
            e.call(this, {
                type: O.RegToString,
                enabled: b.qqBrowser || b.firefox
            })
        }
        return u(t, [{
            key: "init",
            value: function() {
                var t = this;
                this.lastTime = 0,
                this.reg = /./,
                p(this.reg),
                this.reg.toString = function() {
                    var e;
                    return b.qqBrowser ? (e = (new Date).getTime(),
                    t.lastTime && e - t.lastTime < 100 ? t.onDevToolOpen() : t.lastTime = e) : b.firefox && t.onDevToolOpen(),
                    ""
                }
            }
        }, {
            key: "detect",
            value: function() {
                p(this.reg)
            }
        }]),
        t
    }()
      , ie = function() {
        n(t, k);
        var e = l(t);
        function t() {
            return i(this, t),
            e.call(this, {
                type: O.DefineId
            })
        }
        return u(t, [{
            key: "init",
            value: function() {
                var e = this;
                this.div = document.createElement("div"),
                this.div.__defineGetter__("id", function() {
                    e.onDevToolOpen()
                }),
                Object.defineProperty(this.div, "id", {
                    get: function() {
                        e.onDevToolOpen()
                    }
                })
            }
        }, {
            key: "detect",
            value: function() {
                p(this.div)
            }
        }]),
        t
    }()
      , oe = function() {
        n(t, k);
        var e = l(t);
        function t() {
            return i(this, t),
            e.call(this, {
                type: O.Size,
                enabled: !b.iframe && !b.edge
            })
        }
        return u(t, [{
            key: "init",
            value: function() {
                var e = this;
                this.checkWindowSizeUneven(),
                window.addEventListener("resize", function() {
                    setTimeout(function() {
                        e.checkWindowSizeUneven()
                    }, 100)
                }, !0)
            }
        }, {
            key: "detect",
            value: function() {}
        }, {
            key: "checkWindowSizeUneven",
            value: function() {
                var e = function() {
                    if (re(window.devicePixelRatio))
                        return window.devicePixelRatio;
                    var e = window.screen;
                    return !(re(e) || !e.deviceXDPI || !e.logicalXDPI) && e.deviceXDPI / e.logicalXDPI
                }();
                if (!1 !== e) {
                    var t = 200 < window.outerWidth - window.innerWidth * e
                      , e = 300 < window.outerHeight - window.innerHeight * e;
                    if (t || e)
                        return this.onDevToolOpen(),
                        !1;
                    N(this.type)
                }
                return !0
            }
        }]),
        t
    }();
    function re(e) {
        return null != e
    }
    var A, ue = function() {
        n(t, k);
        var e = l(t);
        function t() {
            return i(this, t),
            e.call(this, {
                type: O.DateToString,
                enabled: !b.iosChrome && !b.iosEdge
            })
        }
        return u(t, [{
            key: "init",
            value: function() {
                var e = this;
                this.count = 0,
                this.date = new Date,
                this.date.toString = function() {
                    return e.count++,
                    ""
                }
            }
        }, {
            key: "detect",
            value: function() {
                this.count = 0,
                p(this.date),
                w(),
                2 <= this.count && this.onDevToolOpen()
            }
        }]),
        t
    }(), ce = function() {
        n(t, k);
        var e = l(t);
        function t() {
            return i(this, t),
            e.call(this, {
                type: O.FuncToString,
                enabled: !b.iosChrome && !b.iosEdge
            })
        }
        return u(t, [{
            key: "init",
            value: function() {
                var e = this;
                this.count = 0,
                this.func = function() {}
                ,
                this.func.toString = function() {
                    return e.count++,
                    ""
                }
            }
        }, {
            key: "detect",
            value: function() {
                this.count = 0,
                p(this.func),
                w(),
                2 <= this.count && this.onDevToolOpen()
            }
        }]),
        t
    }(), ae = function() {
        n(t, k);
        var e = l(t);
        function t() {
            return i(this, t),
            e.call(this, {
                type: O.Debugger,
                enabled: b.iosChrome || b.iosEdge
            })
        }
        return u(t, [{
            key: "detect",
            value: function() {
                var e = v();
                100 < v() - e && this.onDevToolOpen()
            }
        }]),
        t
    }(), le = function() {
        n(t, k);
        var e = l(t);
        function t() {
            return i(this, t),
            e.call(this, {
                type: O.Performance,
                enabled: b.chrome || !b.mobile
            })
        }
        return u(t, [{
            key: "init",
            value: function() {
                this.maxPrintTime = 0,
                this.largeObjectArray = M()
            }
        }, {
            key: "detect",
            value: function() {
                var e = this
                  , t = h(function() {
                    y(e.largeObjectArray)
                })
                  , n = h(function() {
                    p(e.largeObjectArray)
                });
                if (this.maxPrintTime = Math.max(this.maxPrintTime, n),
                w(),
                0 === t || 0 === this.maxPrintTime)
                    return !1;
                t > 10 * this.maxPrintTime && this.onDevToolOpen()
            }
        }]),
        t
    }(), fe = (e(A = {}, O.RegToString, _),
    e(A, O.DefineId, ie),
    e(A, O.Size, oe),
    e(A, O.DateToString, ue),
    e(A, O.FuncToString, ce),
    e(A, O.Debugger, ae),
    e(A, O.Performance, le),
    e(A, O.DebugLib, G),
    A);
    var R = Object.assign(function(e) {
        function t() {
            var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "";
            return {
                success: !e,
                reason: e
            }
        }
        var n;
        if (R.isRunning)
            return t("already running");
        if (W(),
        n = {
            log: function() {},
            table: function() {},
            clear: function() {}
        },
        B = b.ie ? (p = function() {
            return n.log.apply(n, arguments)
        }
        ,
        y = function() {
            return n.table.apply(n, arguments)
        }
        ,
        function() {
            return n.clear()
        }
        ) : (p = n.log,
        y = n.table,
        n.clear),
        q(e),
        d.md5 && ne(function(e) {
            var t = window.location.search
              , n = window.location.hash;
            if ("" !== (t = "" === t && "" !== n ? "?".concat(n.split("?")[1]) : t) && void 0 !== t) {
                n = new RegExp("(^|&)" + e + "=([^&]*)(&|$)","i"),
                e = t.substr(1).match(n);
                if (null != e)
                    return unescape(e[2])
            }
            return ""
        }(d.tkName)) === d.md5)
            return t("token passed");
        if (d.seo && b.seoBot)
            return t("seobot");
        R.isRunning = !0,
        ee(R);
        var i = R
          , o = (X = function() {
            return i.isSuspend
        }
        ,
        window.top)
          , r = window.parent;
        if (g(window),
        d.disableIframeParents && o && r && o !== window) {
            for (; r !== o; )
                g(r),
                r = r.parent;
            g(o)
        }
        return ("all" === d.detectors ? Object.keys(fe) : d.detectors).forEach(function(e) {
            new fe[e]
        }),
        t()
    }, {
        isRunning: !1,
        isSuspend: !1,
        md5: ne,
        version: "0.3.8",
        DetectorType: O,
        isDevToolOpened: $
    });
    _ = function() {
        if ("undefined" == typeof window || !window.document)
            return null;
        var n = document.querySelector("[disable-devtool-auto]");
        if (!n)
            return null;
        var i = ["disable-menu", "disable-select", "disable-copy", "disable-cut", "disable-paste", "clear-log"]
          , o = ["interval"]
          , r = {};
        return ["md5", "url", "tk-name", "detectors"].concat(i, o).forEach(function(e) {
            var t = n.getAttribute(e);
            null !== t && (-1 !== o.indexOf(e) ? t = parseInt(t) : -1 !== i.indexOf(e) ? t = "false" !== t : "detector" === e && "all" !== t && (t = t.split(" ")),
            r[function(e) {
                if (-1 === e.indexOf("-"))
                    return e;
                var t = !1;
                return e.split("").map(function(e) {
                    return "-" === e ? (t = !0,
                    "") : t ? (t = !1,
                    e.toUpperCase()) : e
                }).join("")
            }(e)] = t)
        }),
        r
    }();
    return _ && R(_),
    R
});

然后屏蔽这个请求(我这个已经屏蔽过所以显示的 取消阻止)

刷新,就正常了,不过脚本还是用不了,应该是有识别脚本特征

不过这样子修补过还是有时白屏,而且操作麻烦,需要有一定技术基础

如果说的不对还请指出,本人菜鸟一只

23 个赞

年终始皇给大伙出题呢

4 个赞

这种影响正常浏览的机制还是不要有比较好,我这啥脚本插件没有都浏览着变成空白了,没法愉快摸鱼了

5 个赞

给大佬点赞啦 大佬好啊

1 个赞

那基本上是网络问题导致turnstile无法完成

1 个赞

关键是手机

3 个赞

期末考试了,让始皇给第一名发奖杯 :laughing:

妥妥的负优化, 我chrome不用任何的增强插件, 都莫名其妙一卡一卡的, 也偶尔发生白屏(仅linux.do

3 个赞

怪了,我挺好的呀

有时回帖的时候这个东西报错也白屏,直接回复都不能回复,逆天

负优化太严重了属于是, 打字都一卡一卡的

那就不清楚咧, 可能你电脑配置比较好, 我小小的32G比较差

1 个赞

我也32G呀 :tieba_087:不应该呀,我chrome

我现在pc 端根本进不去。手机才能进去

搁这挖矿呢

5 个赞

超级难受拿 :tieba_087:

始皇说了是为了防止脚本刷活跃吧

负优化有点太严重了, 给不开插件的用户也造成了困扰. 莫名其妙打字一卡一卡的, 然后标签切走等十几秒又切回来就变白屏

可以跟始皇说下,带上你的地区浏览器啥的

现在应该关掉这个负优化了, 不卡也不白屏了