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

推荐订阅源

WordPress大学
WordPress大学
A
About on SuperTechFans
量子位
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
U
Unit 42
D
DataBreaches.Net
博客园 - Franky
D
Docker
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - 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查找域名解析商,域名注册商,站长信息。并利用这些信息进行相关投诉