在项目开发中有时会遇到不想让别人轻易查看到网站的源代码信息,我们有多种方法可以轻保护自己的网站源码。下面会介绍三种使用JavaScript来保护自己的网站源码的方法:
最常见查看网站源码的无非有这四种:
F12
鼠标右键单击
Ctrl+Shift+I
Ctrl+U
以上的四种方法都可以查看到网站的源代码,我们可以通过使用JavaScript来屏蔽掉这四种状态从而实现禁止查看源代码效果。下面直接放源码。
<script type='text/javascript'> const handler = setInterval(function () { console.clear(); const before = new Date(); debugger; const after = new Date(); const cost = after.getTime() - before.getTime(); if (cost > 100) { } }, 1); //屏蔽右键菜单 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.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; } } //禁止f12 function fuckyou() { window.open("/", "_blank"); //新窗口打开页面 window.close(); //关闭当前窗口(防抽) window.location = "about:blank"; //将当前窗口跳转置空白页 } //禁止Ctrl+U var arr = [123, 17, 18]; document.oncontextmenu = new Function("event.returnValue=false;"), //禁用右键 window.onkeydown = function (e) { var keyCode = e.keyCode || e.which || e.charCode; var ctrlKey = e.ctrlKey || e.metaKey; console.log(keyCode + "--" + keyCode); if (ctrlKey && keyCode == 85) { e.preventDefault(); } if (arr.indexOf(keyCode) > -1) { e.preventDefault(); } } function ck() { console.profile(); console.profileEnd(); //我们判断一下profiles里面有没有东西,如果有,肯定有人按F12了,没错!! if (console.clear) { console.clear() }; if (typeof console.profiles == "object") { return console.profiles.length > 0; } } function hehe() { if ((window.console && (console.firebug || console.table && /firebug/i.test(console.table()))) || ( typeof opera == 'object' && typeof opera.postError == 'function' && console.profile.length > 0)) { fuckyou(); } if (typeof console.profiles == "object" && console.profiles.length > 0) { fuckyou(); } } hehe(); window.onresize = function () { if ((window.outerHeight - window.innerHeight) > 100) //判断当前窗口内页高度和窗口高度,如果差值大于100,那么呵呵 fuckyou(); } document.onkeydown = function (event) { if ((event.keyCode == 112) || //屏蔽 F1 (event.keyCode == 113) || //屏蔽 F2 (event.keyCode == 114) || //屏蔽 F3 (event.keyCode == 115) || //屏蔽 F4 // (event.keyCode == 116) || //屏蔽 F5 (event.keyCode == 117) || //屏蔽 F6 (event.keyCode == 118) || //屏蔽 F7 (event.keyCode == 119) || //屏蔽 F8 (event.keyCode == 120) || //屏蔽 F9 (event.keyCode == 121) || //屏蔽 F10 (event.keyCode == 122) || //屏蔽 F11 (event.keyCode == 123)) //屏蔽 F12 { return false; } } window.onhelp = function () { return false; } </script>
真正能实现源代码屏蔽的单纯的.html是不可能的!想看源代码也是没办法阻止的。此脚本这只能防止不劳而获的小白,针对计算机老鸟、大神是无法作用的;并且现在很多浏览器自带有查看网页源代码的功能。用TELEPROT 这类网站下载工具可以下载任何文件,相当于做镜像网站。想真正的保护源代码,除非服务器进行安全设置、加密。