我想禁用我的网页源代码并检查元素栏。我用这个脚本做了。但如果我在我的网址之前写了" 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>
答案 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>