惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
Y
Y Combinator Blog
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
M
MIT News - Artificial intelligence
博客园 - Franky
V
Visual Studio Blog
I
InfoQ
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
博客园 - 司徒正美
L
LangChain Blog

姓王者的博客

Linux用户Secure Boot自主维护指南 | 姓王者的博客 MAD Bugs 已经开始——关于信息安全的军备竞赛 | 姓王者的博客 解决钉钉Dingtalk无法在Linux新版内核上启动问题-修复可执行栈错误 | 姓王者的博客 突发:GitHub 正遭受大规模 Issue 赌博广告轰炸 | 姓王者的博客 Ubuntu26.04-beta体验:坚毅浣熊! | 姓王者的博客 fakeclaw装作龙虾发贴吧 | 姓王者的博客 找回12年前的QQ记忆 | 姓王者的博客 在Linux上玩Flash网页游戏-洛克王国 | 姓王者的博客 Copilot将使用交互数据来训练 | 姓王者的博客 重要通知-请更新我的GPG公钥 | 姓王者的博客 为了自由Android | 姓王者的博客 GPL"2,3"事 | 姓王者的博客 短文-对VitePlus的一点🤏小贡献 | 姓王者的博客 Bing收录没了?亲测有效的快速恢复指南 | 姓王者的博客 解决桌面设备二维码快速识别的工具-ClipQR | 姓王者的博客 解决 Nautilus 自定义终端插件安装依赖问题 | 姓王者的博客 OpenClaw 该熄火了 | 姓王者的博客 Vite8 - 统一的基建开始 | 姓王者的博客 Astro 6 推出啦 | 姓王者的博客 ubuntu的openvpn异常暂停推送更新 | 姓王者的博客 Ubuntu 24.04 安装 Win10 虚拟机 | 姓王者的博客 ESA-后记:热爱阿里云 | 姓王者的博客 Moonbit 0.8.0 重大发布,我也要改一下我的包 | 姓王者的博客 ESA Pages 边缘开发大赛获奖 | 姓王者的博客 Astro: 优化katex,mermaid和灯箱使用 | 姓王者的博客 从edgeone迁移到esa | 姓王者的博客 出租人类:AI时代的荒诞与真实 | 姓王者的博客 Astro 5.17构建性能优化实践:从18s到13s | 姓王者的博客 Moonbit License Checker 开发使用 | 姓王者的博客 Stalux Astro博客主题自荐 | 姓王者的博客
防止镜像,保护个人网站 | 姓王者的博客
作者:xingwangzhe · 2024-10-27 · via 姓王者的博客

防止镜像,保护个人网站

🕒 阅读时间:2 分钟 📝 字数:490 👀 阅读量: Loading...

你再镜像试试?

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

源码

可以通过外部资源调用,亦可以直接在<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查找域名解析商,域名注册商,站长信息。并利用这些信息进行相关投诉