• 禁止用户打开浏览器控制台


    禁止用户打开浏览器控制台

    禁止浏览器默认右键菜单

    1 document.oncontextmenu = function (event) {
    2     event.preventDefault();
    3 };

    禁止浏览器文本选中

    • js
    • 1 if(document.all){
      2     document.onselectstart= function(){return false;}; //for ie
      3 }else{
      4     document.onmousedown= function(){return false;};
      5     document.onmouseup= function(){return true;};
      6 }
      7 document.onselectstart = new Function('event.returnValue=false;');
    • css
    1 <style type="text/css">
    2     body {
    3         -moz-user-select: none;
    4         -webkit-user-select: none;
    5         -ms-user-select: none;
    6         -khtml-user-select: none;
    7         user-select: none;
    8     } 
    9 </style>

    禁止复制内容

     1 document.oncopy = function (event) {
     2     if (window.event) {
     3         event = window.event;
     4     }
     5     try {
     6         var the = event.srcElement;
     7         if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {
     8             return false;
     9         }
    10         return true;
    11     } catch (e) {
    12         return false;
    13     }
    14 }

    禁止F12打开控制台

    1 document.onkeydown = document.onkeyup = document.onkeypress = function(event) {
    2     var e = event || window.event || arguments.callee.caller.arguments[0];
    3 
    4     if (e && e.keyCode == 123) {
    5             e.returnValue = false;
    6             return (false);
    7     }
    8 }

    终极武器

    上述方法禁止右键和F12打开控制台,但是知道打开控制台的人基本上都是懂技术的,这点限制还难不倒他们,他们可以通过Ctrl+Shift+I或者浏览器设置进入开发者模式,实乃帝国主义亡我之心不死,对付这种狡诈恶徒,需要祭上最终手段。我们检测用户是否打开控制台,如果打开,我们对网页进行一些操作,例如:强制跳转页面。

     1     var ConsoleManager={
     2             onOpen:function(){
     3                 alert("Console is opened")
     4             },
     5             onClose:function(){
     6                 alert("Console is closed")
     7             },
     8             init:function(){
     9                 var self = this;
    10                 var x = document.createElement('div');
    11                 var isOpening = false,isOpened=false;
    12                 Object.defineProperty(x, 'id', {
    13                     get:function(){
    14                         if(!isOpening){
    15                             self.onOpen();
    16                             isOpening=true;
    17                         }
    18                         isOpened=true;
    19                     }
    20                 });
    21                 setInterval(function(){
    22                     isOpened=false;
    23                     console.info(x);
    24                     console.clear();
    25                     if(!isOpened && isOpening){
    26                         self.onClose();
    27                         isOpening=false;
    28                     }
    29                 },200)
    30             }
    31         }
    32 
    33         ConsoleManager.onOpen = function(){
    34             //打开控制台,跳转到百度
    35             try{
    36                 window.open('https://www.baidu.com/',target='_self');
    37             }catch(err){
    38                 var a = document.createElement("button");
    39                     a.onclick=function(){
    40                     window.open('https://www.baidu.com',target='_self');
    41                 }
    42                 a.click();  
    43             }
    44         }
    45         ConsoleManager.onClose = function(){
    46             alert("Console is closed!!!!!")
    47         }
    48         ConsoleManager.init();

    作者:桐间纱路

    链接:https://www.jianshu.com/p/1c171cb86dbb

  • 相关阅读:
    linux中添加ftp用户,并设置相应的权限
    mysql 命令管理
    阿里云服务器资料
    sql替换指定字段指定字符串
    apache本地域名ip重定向vhosts
    php数组序列化serialize与unserialize
    Android 开发第三天
    Android 开发第二天
    Android开发的第一天
    字符的截取方法使用的是Substring 和三目运算符
  • 原文地址:https://www.cnblogs.com/best-coder/p/11765875.html
Copyright © 2020-2023  润新知