zoukankan      html  css  js  c++  java
  • 在别的地方看的,还没研究

    前端:屏蔽F12审查元素,禁止修改页面代码

    众所周知,审查元素的情况下,大家都可以随机更改一部分页面的代码,

    注入恶意JS等等,这种情况避免也不难,虽然还能看到一部分H5源码,但是无法修改

    一、屏蔽F12 审查元素

    document.onkeydown = function(){

    if(window.event && window.event.keyCode == 123) {
    alert("F12被禁用");
    event.keyCode=0;
    event.returnValue=false;
    }
    if(window.event && window.event.keyCode == 13) {
    window.event.keyCode = 505;
    }
    if(window.event && window.event.keyCode == 8) {
    alert(str+" 请使用Del键进行字符的删除操作!");
    window.event.returnValue=false;
    }

    }

    除了屏蔽这个,我们还有其他有趣的设置:


    二、屏蔽右键菜单
    document.oncontextmenu = function (event){
    if(window.event){
    event = window.event;
    }try{
    var the = event.srcElement;
    if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
    return false;
    }
    return true;
    }catch (e){
    return false;
    }
    }

    三、屏蔽粘贴
    document.onpaste = function (event){
    if(window.event){
    event = window.event;
    }try{
    var the = event.srcElement;
    if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
    return false;
    }
    return true;
    }catch (e){
    return false;
    }
    }

    四、屏蔽复制
    document.oncopy = function (event){
    if(window.event){
    event = window.event;
    }try{
    var the = event.srcElement;
    if(!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
    return false;
    }
    return true;
    }catch (e){
    return false;
    }
    }

    五、屏蔽剪切
    document.oncut = function (event){
    if(window.event){
    event = window.event;
    }try{
    var the = event.srcElement;
    if(!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
    return false;
    }
    return true;
    }catch (e){
    return false;
    }
    }

    这种很适合小说网站,毕竟版权珍贵,被别人随意copy走内容就不好了

    六、屏蔽选中
    document.onselectstart = function (event){
    if(window.event){
    event = window.event;
    }try{
    var the = event.srcElement;
    if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
    return false;
    }
    return true;
    } catch (e) {
    return false;
    }
    }
     
    ======================评论里的==
    1.  
      'use strict';
    2.  
      (function() {
    3.  
      function R(a) {
    4.  
      let ona = "on" + a;
    5.  
      if (window.addEventListener){
    6.  
      window.addEventListener(a, function(e) {
    7.  
      for (let n = e.originalTarget; n; n = n.parentNode) n[ona] = null;
    8.  
      }, true);
    9.  
      }
    10.  
      window[ona] = null;
    11.  
      document[ona] = null;
    12.  
      if (document.body) document.body[ona] = null;
    13.  
      }
    14.  
      R("contextmenu");
    15.  
      R("click");
    16.  
      R("mousedown");
    17.  
      R("mouseup");
    18.  
      R("paste");
    19.  
      R("cut");
    20.  
      R("copy");
    21.  
      R("selectstart");
    22.  
      })()
  • 相关阅读:
    GDAL并行IO的疑问
    memcpy一段内存到std::vector<double>
    解决mysql无法远程登陆问题
    .net 上传word 转为 html
    OnCheckedChanged的触发需要AutoPostBack="true"
    asp.net与word文档在线
    [转]mysql如何设置主键和外键,实现级联更新、级联删除
    asp.net 读取Word
    datalist 嵌套 datalist 中的table 乱
    [转]php中使用ignore_user_abort()函数后,如何停止后台运行的程序?
  • 原文地址:https://www.cnblogs.com/dudududadada/p/13553083.html
Copyright © 2011-2022 走看看