防止镜像,保护个人网站
发布时间:
更新时间:
你再镜像试试?
本文参考自 保护您的博客不被恶意镜像
源码
可以通过外部资源调用,亦可以直接在<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查找域名解析商,域名注册商,站长信息。并利用这些信息进行相关投诉
留言评论