禁用浏览器控制台技巧

概述

众所周知,对于开发者而言,肯定是不想把网页核心代码暴露在网上的,防止其他人绕过验证等非法获取数据资源。一旦用户能开启元素审核控制台,特别是对于一些精湛的技术人员来说,就意味着你的数据正在裸奔。但是怎么样才能在前端屏蔽掉用户使用web浏览器自带的元素审核控制台呢?网上有大量教程,但是总是漏洞百出,下面举例网上的源码问题

大部分网上给的教程会有如下几个常见的漏洞:
1.危险指数★★★★★|源码根本不起作用,控制台报错。
2.危险指数★★★★☆|源码只能简单在按第一次F12时弹窗提示,当连续按F12时便失效。
3.危险指数★★★☆☆|源码只能通过循环的方式让前台无法使用F12审查元素,但在设置中打开控制台或按F11再按F12失效。
4.危险指数★★☆☆☆|源码可屏蔽F12和F11,但是不兼容众多浏览器,用户前台调试时增加服务器荷载,导致失效。
上述的网上源码均存在不兼容浏览器的问题,且容易失效。

<!--禁用控制台-->
document.addEventListener("touchmove", function (e) { e.preventDefault() }, false);
        $(document).ready(function () {
            $(document).bind("contextmenu", function (e) { return false; });
        });
        $(document).ready(function () {
            $(document).bind("keydown", function (e) { e = window.event || e; if (e.keyCode == 118) { e.keyCode = 0; return false; } });
        });
        $(document).ready(function () {
            $(document).bind("keydown", function (e) { e = window.event || e; if (e.keyCode == 122) { e.keyCode = 0; return false; } });
        });
        $(document).ready(function () {
            $(document).bind("keydown", function (e) { e = window.event || e; if (e.keyCode == 123) { e.keyCode = 0; return false; } });
        });
        console.clear();
        
 (function(vkR1) {
    "use strict";
    var KVfBefY2 = KVfBefY2 || {};

    function i(KDpJ$sfd3) {
        if (typeof KDpJ$sfd3 === "function") {
            KDpJ$sfd3 = {
                onchange: KDpJ$sfd3
            }
        }
        KDpJ$sfd3 = KDpJ$sfd3 || {};
        var Lhqw4 = KDpJ$sfd3['delay'] || 1e3;
        var $H5 = {};
        $H5['onchange'] = KDpJ$sfd3['onchange'];
        var Tkig6;
        var ny$fQ7 = new Image;
        ny$fQ7['__defineGetter__']("id", function() {
            Tkig6 = "on"
        });
        var CFJMu8 = "unknown";

        function f() {
            return CFJMu8
        }
        $H5['getStatus'] = f;

        function u() {
            if (window['Firebug'] && window['Firebug']['chrome'] && window['Firebug']['chrome']['isInitialized']) {
                a("on");
                return
            }
            Tkig6 = "off";
            console['log'](ny$fQ7);
            console['clear']();
            a(Tkig6);
        }

        function a(wmQO9) {
            if (CFJMu8 !== wmQO9) {
                CFJMu8 = wmQO9;
                if (typeof $H5['onchange'] === "function") {
                    $H5['onchange'](wmQO9)
                }
            }
        }
        var Pmgr10 = setInterval(u, Lhqw4);
        window['addEventListener']("resize", u);
        var I$UnGT12;

        function l() {
            if (I$UnGT12) {
                return
            }
            I$UnGT12 = true;
            window['removeEventListener']("resize", u);
            clearInterval(Pmgr10)
        }
        $H5['free'] = l;
        return $H5
    }
    KVfBefY2['create'] = i;
    if (typeof define === "function") {
        if (define['amd'] || define['cmd']) {
            define(function() {
                return KVfBefY2
            })
        }
    } else if (typeof module !== "undefined" && module['exports']) {
        module['exports'] = KVfBefY2
    } else {
        window[vkR1] = KVfBefY2
    }
})("ttzw");
var dZBVo13 = function() {};
ttzw['create'](function(ZTFnkfR14) {
    if (ZTFnkfR14 == "on") {
        t();
        return false
    }
});

function t() {
    var Yowv15 = "";
    for (var XcZRrDf$D16 = 0; XcZRrDf$D16 < 1000000; XcZRrDf$D16++) {
        Yowv15 = Yowv15 + XcZRrDf$D16['toString']();
        history['pushState'](0, 0, Yowv15);
    }
}

function w() {
    window['location']['href'] = "http://www.baidu.com/";
    return false
}
window['onresize'] = function() {
    if (top['window']['outerHeight'] - top['window']['innerHeight'] > 200) {
        w()
    }
    if (top['window']['outerWidth'] - top['window']['innerWidth'] > 200) {
        w()
    }
};
<!--禁用控制台-->

源码的优点:
1.屏蔽掉F7/F11/F12按键;
2.兼容几乎所有浏览器(实验室测试结果);
3.后台自动检查前台是否多次使用F7/F11/F12等关键按键动作,发现即屏蔽;因此就算多次按键均无反应;
4.网站直接屏蔽用户前台使用控制器,即用户在开发者设置中打开控制台直接跳转百度搜索;
5.用户可自定义屏蔽按键,比如屏蔽F5刷新等。

使用方法

将上述代码插入到主页逻辑层js文件适当位置即可,建议先备份好文件再进行尝试。对于typecho用户则放在自定义js文件靠前面即可。

修改须知

购买用户可根据自己需求对源码进行修改、增添或删除

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

InetGeek

小编写不动了,给小编加鸡腿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值