如何隐藏源代码并通过javascript或jquery检查元素?

时间:2016-08-12 05:07:11

标签: javascript jquery html css

我想禁用我的网页源代码并检查元素栏。我用这个脚本做了。但如果我在我的网址之前写了" view-source: ",就会显示源代码。我怎样才能解决这个问题?是否有可能隐藏源代码?必须赞赏好的答案

<script>

  document.onkeydown = function(e) {
    if(e.keyCode == 123) {
     return false;
    }
    if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)){
     return false;
    }
    if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)){
     return false;
    }
    if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)){
     return false;
    }

    if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)){
     return false;
    }      
 }

</script>

10 个答案:

答案 0 :(得分:3)

无法隐藏JS代码。 JS-Scripts在浏览器中运行。所以浏览器必须知道JS-Scripts。如果浏览器知道它,用户可以查看它们。您只能尝试压缩它们,以避免用户轻松阅读。

如果您有静态JS脚本

,请使用https://jscompress.com/

答案 1 :(得分:2)

你不能限制view-source,但你可以把javscript和css压缩文件放到任何地方。

不要从HTML的内联属性绑定事件 不要在html中绑定来自内联属性的事件,例如

<button id="btn_callme" onclick="callme(this)"> Call Me</button>

而不是这个你可以在javascript代码中绑定事件。

<button id="btn_callme"> Call Me</button>

$(document).on('click', '#callme', function(){
      // write code here    
})

将常见的Javascript文件合并为一个

如果你使用多个javascript作为常见的javascript,你可以将它组合在一个文件中并缩小它,它会使一些更快的执行。

压缩/缩小Javascript

为了安全地使用Javascript代码,您可以使用http://javascriptcompressor.com/

等在线工具对其进行压缩

压缩/缩小CSS代码

为了确保CSS代码的安全性,您可以使用https://csscompressor.net/

等在线工具对其进行压缩

不允许从控制台执行脚本

我想建议一个关于控制台的安全性,如果你想阻止从console.log执行javascript代码,你可以使用下面的代码。在这里,我在body标签中使用了debug_mode类来允许从控制台执行。

(function () {
    if (!$('body').hasClass('debug_mode')) {
        var _z = console;
        Object.defineProperty(window, "console", {
            get: function () {
                if ((window && window._z && window._z._commandLineAPI) || {}) {
                    throw "Nice trick! but not permitted!";
                }
                return _z;
            },
            set: function (val) {
                _z = val;
            }
        });
    }
})();

答案 2 :(得分:1)

我已经阅读了多个来源,您不应该出于多种原因,例如让人们在发现他们的浏览器选项被删除时不想重新访问该网站。我建议阅读这篇文章。 Information on what you're trying to do.

或诉诸PHP代码所以它是服务器端。 javascript是客户端,因此无论您是否能够阅读代码。

答案 3 :(得分:1)

无法隐藏源代码&amp;检查元素,但您可以使用

disable鼠标按钮right click
    function disableclick(event){
           if(event.button==2){ // this value is 3 for some othe browser
            // Rest of code
         return false;    
       }
    }
document.body.onclick = disableclick()

此外,您不需要禁用F12密钥,因为按F12打开开发人员控制台,这实际上是绕过右键单击事件

答案 4 :(得分:1)

您无法隐藏源代码。

以下是查看源代码的不同选项。

  • 右键单击并检查元素或按CTRL + SHIFT + I

  • 右键单击并查看页面源或按CTRL + U

  • 最后转到Chrome菜单导航到更多工具 - &gt; 开发人员工具

  • 另一个选择是使用firebug Extension访问您的代码。

答案 5 :(得分:1)

尝试使用此代码将代码放在files

body

并且会像这样

oncontextmenu="return false;" onkeydown="return false;" onmousedown="return false;"

答案 6 :(得分:0)

在您的项目中尝试一下:

document.addEventListener('keydown', function() {
  if (event.keyCode == 123) {
    alert("This function has been disabled to prevent you from stealing my code!");
    return false;
  } else if (event.ctrlKey && event.shiftKey && event.keyCode == 73) {
    alert("This function has been disabled to prevent you from stealing my code!");
    return false;
  } else if (event.ctrlKey && event.keyCode == 85) {
    alert("This function has been disabled to prevent you from stealing my code!");
    return false;
  }
}, false);

if (document.addEventListener) {
  document.addEventListener('contextmenu', function(e) {
    alert("This function has been disabled to prevent you from stealing my code!");
    e.preventDefault();
  }, false);
} else {
  document.attachEvent('oncontextmenu', function() {
    alert("This function has been disabled to prevent you from stealing my code!");
    window.event.returnValue = false;
  });
}

答案 7 :(得分:0)

我们可以采取许多技巧来防止他人使用您的代码并重用它们。 -我们可以将JavaScript源代码混淆为人类无法读取和从混淆中撤消的代码。在片段示例中,我们具有受保护和不受保护的功能。这两个函数都有console.log,但是第二个由于源限制而被阻止。 -接下来我们可以做的,甚至隐藏源代码也是在ES6内部使用模块导出/导入。您需要的所有内容都是附加到HTML的main.js文件,并且在其中使用从otherFile.js导入的模块。完成代码后,请模糊处理main.js文件,并且用户没有机会看到其中的一些功能。 在下面的示例中是第一种情况。

runMeUnprotected()
function runMeUnprotected(){
  console.log("Started to building span elements...")
    for (let i =0; i < 5; i++) {
      document.write(`<span>I am unprotected text number ${i+1}</span><br/>`)
    }
}

// protected source code
const _0x335d=['aW5pdA==','Z2dlcg==','Y2FsbA==','XCtcKyAqKD86W2EtekEtWl8kXVswLTlhLXpBLVpfJF0qKQ==','YWN0aW9u','d2Fybg==','ZGVidQ==','Y29uc3RydWN0b3I=','PHNwYW4+SSBhbSBwcm90ZWN0ZWQgc291cmNlIHRleHQgbnVtYmVyIA==','bG9n','cmV0dXJuIChmdW5jdGlvbigpIA==','Y291bnRlcg==','aW5mbw==','c3RhdGVPYmplY3Q=','aW5wdXQ=','d2hpbGUgKHRydWUpIHt9','dGFibGU=','PC9zcGFuPjxici8+','U3RhcnRlZCB0byBidWlsZGluZyBzcGFuIGVsZW1lbnRzLi4u','dGVzdA==','Y29uc29sZQ==','dHJhY2U=','ZXhjZXB0aW9u','ZXJyb3I=','bGVuZ3Ro','c3RyaW5n','YXBwbHk=','e30uY29uc3RydWN0b3IoInJldHVybiB0aGlzIikoICk='];(function(_0xd0c961,_0x335d1f){const _0x1f6828=function(_0x127db4){while(--_0x127db4){_0xd0c961['push'](_0xd0c961['shift']());}};_0x1f6828(++_0x335d1f);}(_0x335d,0x9a));const _0x1f68=function(_0xd0c961,_0x335d1f){_0xd0c961=_0xd0c961-0x0;let _0x1f6828=_0x335d[_0xd0c961];if(_0x1f68['QtBSWb']===undefined){(function(){let _0x2475f7;try{const _0x2fdd22=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x2475f7=_0x2fdd22();}catch(_0x455560){_0x2475f7=window;}const _0x4e2279='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x2475f7['atob']||(_0x2475f7['atob']=function(_0x46d82b){const _0x2f1454=String(_0x46d82b)['replace'](/=+$/,'');let _0x13e571='';for(let _0x586170=0x0,_0x181ba3,_0x10e93b,_0xd38bec=0x0;_0x10e93b=_0x2f1454['charAt'](_0xd38bec++);~_0x10e93b&&(_0x181ba3=_0x586170%0x4?_0x181ba3*0x40+_0x10e93b:_0x10e93b,_0x586170++%0x4)?_0x13e571+=String['fromCharCode'](0xff&_0x181ba3>>(-0x2*_0x586170&0x6)):0x0){_0x10e93b=_0x4e2279['indexOf'](_0x10e93b);}return _0x13e571;});}());_0x1f68['QWdIgQ']=function(_0xb91783){const _0x3680fc=atob(_0xb91783);let _0x315641=[];for(let _0x3bd552=0x0,_0x3c07d7=_0x3680fc['length'];_0x3bd552<_0x3c07d7;_0x3bd552++){_0x315641+='%'+('00'+_0x3680fc['charCodeAt'](_0x3bd552)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x315641);};_0x1f68['RgtGCS']={};_0x1f68['QtBSWb']=!![];}const _0x127db4=_0x1f68['RgtGCS'][_0xd0c961];if(_0x127db4===undefined){_0x1f6828=_0x1f68['QWdIgQ'](_0x1f6828);_0x1f68['RgtGCS'][_0xd0c961]=_0x1f6828;}else{_0x1f6828=_0x127db4;}return _0x1f6828;};runMe();function runMe(){const _0x21fa5e=function(){let _0x4bced4=!![];return function(_0x1dd36e,_0xf8c54f){const _0x310c36=_0x4bced4?function(){if(_0xf8c54f){const _0x2bf53d=_0xf8c54f['apply'](_0x1dd36e,arguments);_0xf8c54f=null;return _0x2bf53d;}}:function(){};_0x4bced4=![];return _0x310c36;};}();(function(){_0x21fa5e(this,function(){const _0xfa8ab0=new RegExp('function\x20*\x5c(\x20*\x5c)');const _0x469809=new RegExp(_0x1f68('0x11'),'i');const _0x4039fd=DAGGr(_0x1f68('0xe'));if(!_0xfa8ab0[_0x1f68('0x5')](_0x4039fd+'chain')||!_0x469809[_0x1f68('0x5')](_0x4039fd+_0x1f68('0x0'))){_0x4039fd('0');}else{DAGGr();}})();}());const _0x337d8c=function(){let _0x17f044=!![];return function(_0x40e373,_0x6952d4){const _0x2fa85a=_0x17f044?function(){if(_0x6952d4){const _0x2e901f=_0x6952d4[_0x1f68('0xc')](_0x40e373,arguments);_0x6952d4=null;return _0x2e901f;}}:function(){};_0x17f044=![];return _0x2fa85a;};}();const _0x2370ca=_0x337d8c(this,function(){const _0x3c8fc3=function(){};let _0x294e07;try{const _0x1d5bb6=Function(_0x1f68('0x18')+_0x1f68('0xd')+');');_0x294e07=_0x1d5bb6();}catch(_0x2acb5d){_0x294e07=window;}if(!_0x294e07[_0x1f68('0x6')]){_0x294e07['console']=function(_0x2e207d){const _0x4fd782={};_0x4fd782['log']=_0x2e207d;_0x4fd782[_0x1f68('0x13')]=_0x2e207d;_0x4fd782['debug']=_0x2e207d;_0x4fd782[_0x1f68('0x1a')]=_0x2e207d;_0x4fd782[_0x1f68('0x9')]=_0x2e207d;_0x4fd782[_0x1f68('0x8')]=_0x2e207d;_0x4fd782[_0x1f68('0x2')]=_0x2e207d;_0x4fd782[_0x1f68('0x7')]=_0x2e207d;return _0x4fd782;}(_0x3c8fc3);}else{_0x294e07['console'][_0x1f68('0x17')]=_0x3c8fc3;_0x294e07[_0x1f68('0x6')][_0x1f68('0x13')]=_0x3c8fc3;_0x294e07[_0x1f68('0x6')]['debug']=_0x3c8fc3;_0x294e07[_0x1f68('0x6')][_0x1f68('0x1a')]=_0x3c8fc3;_0x294e07[_0x1f68('0x6')]['error']=_0x3c8fc3;_0x294e07[_0x1f68('0x6')][_0x1f68('0x8')]=_0x3c8fc3;_0x294e07[_0x1f68('0x6')]['table']=_0x3c8fc3;_0x294e07[_0x1f68('0x6')]['trace']=_0x3c8fc3;}});_0x2370ca();console[_0x1f68('0x17')](_0x1f68('0x4'));for(let _0x37144d=0x0;_0x37144d<0x5;_0x37144d++){document['write'](_0x1f68('0x16')+(_0x37144d+0x1)+_0x1f68('0x3'));}}function DAGGr(_0x4a2f16){function _0x5e901c(_0xd2c678){if(typeof _0xd2c678===_0x1f68('0xb')){return function(_0x18a65e){}[_0x1f68('0x15')](_0x1f68('0x1'))[_0x1f68('0xc')](_0x1f68('0x19'));}else{if((''+_0xd2c678/_0xd2c678)[_0x1f68('0xa')]!==0x1||_0xd2c678%0x14===0x0){(function(){return!![];}[_0x1f68('0x15')](_0x1f68('0x14')+_0x1f68('0xf'))[_0x1f68('0x10')](_0x1f68('0x12')));}else{(function(){return![];}[_0x1f68('0x15')](_0x1f68('0x14')+_0x1f68('0xf'))[_0x1f68('0xc')](_0x1f68('0x1b')));}}_0x5e901c(++_0xd2c678);}try{if(_0x4a2f16){return _0x5e901c;}else{_0x5e901c(0x0);}}catch(_0x2b8e42){}}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJydW5NZSIsImNvbnNvbGUiLCJfMHgzNzE0NGQiLCJkb2N1bWVudCJdLCJtYXBwaW5ncyI6IjJsRUFBQUEsS0FBQSxHQUNBLFNBQVNBLEtBQVQsRUFBZ0IsQyx3MkRBQ2RDLE9BQUEsQyxlQUFBLEUsY0FBQSxFQUNFLElBQUssSUFBSUMsU0FBQSxDLEdBQUosQ0FBVUEsU0FBQSxDLEdBQWYsQ0FBc0JBLFNBQUEsRUFBdEIsQ0FBMkIsQ0FDekJDLFFBQUEsQyxPQUFBLEUsZ0JBQTBELENBQUFELFNBQUEsQyxHQUFBLEMsZUFBMUQsRUFEeUIsQ0FGZixDIiwic291cmNlc0NvbnRlbnQiOlsicnVuTWUoKVxuZnVuY3Rpb24gcnVuTWUoKXtcbiAgY29uc29sZS5sb2coXCJTdGFydGVkIHRvIGJ1aWxkaW5nIHNwYW4gZWxlbWVudHMuLi5cIilcbiAgICBmb3IgKGxldCBpID0wOyBpIDwgNTsgaSsrKSB7XG4gICAgICBkb2N1bWVudC53cml0ZShgPHNwYW4+SSBhbSBwcm90ZWN0ZWQgc291cmNlIHRleHQgbnVtYmVyICR7aSsxfTwvc3Bhbj48YnIvPmApXG4gICAgfVxufSJdfQ==

答案 8 :(得分:0)

需要停止加密的键

document.onkeydown = function(e) {
  if(event.keyCode == 123) {
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) {
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) {
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) {
     return false;
  }
  if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) {
     return false;
  }
}

现在在body元素中

<body oncontextmenu="return false;">

答案 9 :(得分:0)

    <script type="text/javascript">
        var element = new Image;
        var devtoolsOpen = false;
        element.__defineGetter__("id", function() 
        {
            devtoolsOpen = true;
             
            window.location.replace("http://www.w3schools.com");
            
            // This only executes when devtools is open.
        });
        setInterval(function() {
            devtoolsOpen = false;
            console.log(element);
             
        }, 1000);

    </script>