在项目开发中有时会遇到不想让别人轻易查看到网站的源代码信息,我们有多种方法可以轻保护自己的网站源码。下面会介绍三种使用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 这类网站下载工具可以下载任何文件,相当于做镜像网站。想真正的保护源代码,除非服务器进行安全设置、加密。
