防止镜像,保护个人网站

发布时间:
更新时间:

你再镜像试试?

本文参考自 保护您的博客不被恶意镜像

源码

可以通过外部资源调用,亦可以直接在<body></body>标签里使用<script></script>来实现

(function () {
var encodedValidDomain = 'YmxvZy5nb29kYm95Ym95LnRvcA==';//base64加密后的域名
var encodedredirectUrl = 'aHR0cHM6Ly9ibG9nLmdvb2Rib3lib3kudG9w'//base64加密后的链接,包含协议头
var decodedValidDomain = atob(encodedValidDomain);
var redirectUrl = atob(encodedredirectUrl);
var hostname = document.location.hostname;
function createWatermark(text) {
var watermarkDiv = document.createElement('div');
watermarkDiv.style.pointerEvents = 'none';
watermarkDiv.style.position = 'fixed';
watermarkDiv.style.top = '0';
watermarkDiv.style.left = '0';
watermarkDiv.style.width = '100%';
watermarkDiv.style.height = '100%';
watermarkDiv.style.zIndex = '9999';
watermarkDiv.style.opacity = '0.1';
watermarkDiv.style.background = 'transparent';
watermarkDiv.style.overflow = 'hidden';
watermarkDiv.style.display = 'flex';
watermarkDiv.style.justifyContent = 'center';
watermarkDiv.style.alignItems = 'center';
watermarkDiv.style.flexWrap = 'wrap';
var watermarkText = document.createElement('div');
watermarkText.innerText = text;
watermarkText.style.color = 'black';
watermarkText.style.fontSize = '30px';
watermarkText.style.transform = 'rotate(-30deg)';
watermarkText.style.whiteSpace = 'nowrap';
watermarkText.style.margin = '20px';
for (var i = 0; i < 100; i++) {
watermarkDiv.appendChild(watermarkText.cloneNode(true));
}
document.body.appendChild(watermarkDiv);
}
if (hostname !== decodedValidDomain) {
createWatermark(decodedValidDomain);//decodedValidDomain可以替换为自定义水印内容
var userResponse = confirm("警告:您当前浏览的页面非官方页面,可能存在有害信息!建议您跳转至官方页面进行浏览!");
if (userResponse) {
window.location.replace(redirectUrl);
}
}
})();

此源码:

作者: GoodBoyboy 链接: https://blog.goodboyboy.top/posts/3095793858.html?highlight=%E9%95%9C%E5%83%8F 来源: GoodBoyboy ‘s Blog|惬意小屋-点滴记忆 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我自己使用文心一言来做的代码

(function () {
var encodedValidDomain = 'eGluZ3dhbmd6aGUuZnVu'; // base64加密后的域名
var encodedredirectUrl = 'aHR0cHM6Ly94aW5nd2FuZ3poZS5mdW4='; // base64加密后的链接,包含协议头
var decodedValidDomain = atob(encodedValidDomain);
var redirectUrl = atob(encodedredirectUrl);
var hostname = document.location.hostname;
// 创建提示信息的div
function showWarningMessage(message, delay) {
var messageDiv = document.createElement('div');
messageDiv.style.position = 'fixed';
messageDiv.style.top = '50%';
messageDiv.style.left = '50%';
messageDiv.style.transform = 'translate(-50%, -50%)';
messageDiv.style.padding = '20px';
messageDiv.style.backgroundColor = 'red';
messageDiv.style.color = 'white';
messageDiv.style.zIndex = '9999';
messageDiv.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.5)';
messageDiv.innerText = message;
document.body.appendChild(messageDiv);
// 设置延时后移除提示信息并跳转
setTimeout(function() {
document.body.removeChild(messageDiv);
window.location.replace(redirectUrl);
}, delay);
}
检查是否为本地调试域名可选
if (hostname.includes('localhost') || hostname.includes('127.0.0.1')) {
return; // 退出函数,不执行后续代码
}
if (hostname !== decodedValidDomain) {
// 显示提示信息,并在6秒后自动跳转
showWarningMessage("警告:您当前浏览的页面非官方页面,可能存在有害信息!您将被自动跳转至官方页面。", 6000);
}
})();
</script>

它使用了一个自定义的 div 元素来显示提示信息,并在 5 秒后自动跳转到指定的 URL:

混淆

正如原文作者所说,为了防止正则匹配,我们需要混淆,下面是js混淆网站地址

GitHub 上一个项目:https://github.com/javascript-obfuscator/javascript-obfuscator

官方也提供了一个在线工具:https://obfuscator.io/#code

由于存在汉字,记得勾选unicode

建议

使用whois查找域名解析商,域名注册商,站长信息。并利用这些信息进行相关投诉

留言评论

2000年1月1日星期六
00:00:00