Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >防止镜像,保护个人网站

防止镜像,保护个人网站

作者头像
姓王者
发布于 2024-10-31 10:54:12
发布于 2024-10-31 10:54:12
17400
代码可运行
举报
文章被收录于专栏:姓王者的博客姓王者的博客
运行总次数:0
代码可运行

你再镜像试试?

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

源码

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(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=镜像 来源: GoodBoyboy 's Blog|惬意小屋-点滴记忆 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(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查找域名解析商,域名注册商,站长信息。并利用这些信息进行相关投诉

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
页面添加水印效果实现
程序媛夏天
2024/01/18
2790
页面添加水印效果实现
微信内置浏览器自动跳转其它浏览器
此方法可以实现微信内置浏览器跳转到手机其它浏览器,现在网上其它的方法都只是一个页面,让访问者自己手动点右上角浏览器打开,而这个不同,是可以直接自动跳转的。 安卓访问时可以直接自动跳转浏览器;IO
Youngxj
2018/06/06
13.4K5
qq域名检测api接口分享(附内部访问自动跳转PHP代码)
qq域名检测api文档 接口地址: http://api.new.urlzt.com/api/qq 请求方式: GET/POST 请求示例: http://api.new.urlzt.com/api
晶天
2021/03/30
3.4K0
qq域名检测api接口分享(附内部访问自动跳转PHP代码)
简单实现页面自动跳转引导
因为自己写代码就是个半吊子,很多东西不懂,所以也是逐步摸索,下面就是尝试过的方案;
MinChess
2024/11/13
1900
简单实现页面自动跳转引导
JavaWeb——JavaScript精讲之DOM、BOM对象与案例实战(动态添加删除表格)
上一博文种讲解了JavaScript基础的ECMAScript,包括基本语法和部分对象,本文中继续讲解JavaScript中比较重要的两部分内容BOM、DOM及事件,后文中有对应的实战练习。
Winter_world
2020/09/25
2.3K0
JavaWeb——JavaScript精讲之DOM、BOM对象与案例实战(动态添加删除表格)
TSINGSEE青犀视频开发EasyWasmPlayer H265播放器如何实现视频截图
在我们做视频开发的过程中,会遇到不少需求,其中视频截图就是一个比较常见的需求,因此TSINGSEE青犀视频不管是在设计视频平台还是视频播放器的时候,我们都会在原有开发的基础上对视频截图进行一些功能拓展。
TSINGSEE青犀视频
2021/02/03
7630
什么年代还在用传统 Pjax? —— 自定义 Pjax 提升页面加载速度
Hexo 属于静态博客,很多同学给自己的博客加上 Pjax 是为了音乐播放器等功能不中断。
OhhhCKY
2022/12/28
3K0
什么年代还在用传统 Pjax? —— 自定义 Pjax 提升页面加载速度
JS和HTML笔记
var myDate = new Date; var year = myDate.getFullYear(); //获取当前年 var mon = myDate.getMonth() + 1; //获取当前月 var date = myDate.getDate(); //获取当前日 // var h = myDate.getHours();//获取当前小时数(0-23) // var m = myDate.getMinutes();//获取当前分钟数(0-59) // var s = myDate.getSeconds();//获取当前秒 var week = myDate.getDay(); var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; console.log(year, mon, date, weeks[week]) $("#time").html(year + "年" + mon + "月" + date + "日" + weeks[week]);
OwenZhang
2021/12/08
5.5K0
JS和HTML笔记
JS动态添加表单
<script type=”text/javascript”> function addRow()<!–js实现添加一行内容!–> { var tr=document.createElement(“tr”); var td=document.createElement(“td”); var input=document.createElement(“input”); input.setAttribute(“type”,”file”); input.setAttribute(“name”,”image[]”)
苦咖啡
2018/05/07
14.3K0
上海加油,程序员是这么看视频的
刷了一晚上PYQ,花了一点时间临时写了这个代码,以下是完整代码。 <!DOCTYPE html> <html> <head> <!-- 程序员:大帅老猿 --> <meta charset="utf-8"> <title>BadApple</title> <style type="text/css"> html,body{ margin: 0; padding: 0; } </style> <script type="text/javascript"> functio
大帅老猿
2022/06/06
2390
上海加油,程序员是这么看视频的
前端之BOM和DOM
BOM(Browser Object Model)浏览器对象模型,它使得JS能够与浏览器进行‘对话’(交互,通过JS对页面内容进行操作)。
GH
2019/12/16
2.8K0
前端之BOM和DOM
在线涂改图片 php,php UEditor如何实现删除图片功能
php ueditor删除图片的实现方法:首先找到“uedior/dialogs/image/image.js”文件并修改Add内容;然后打开“mageManager.php”文件并添加内容为“function delfile()”即可。
全栈程序员站长
2022/10/04
1.9K0
在线涂改图片 php,php UEditor如何实现删除图片功能
前端常见问题和技术解决方案
同源是指 " 协议+域名+端口 " 三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源。
PHP开发工程师
2022/06/09
2K0
前端常见问题和技术解决方案
twikoo仿段落评论,实现快速评论功能
前几天在twikoo的交流群中,有人提到了这样一个问题:twikoo可以实现段落评论吗?我想了一下,下载了个番茄小说发现,他们都是按照每一行的内容分别进行评论的,Hexo可以实现类似于每一段落一个Url,也就是#[段落名]的格式,但是Twikoo并不能将这些段落分开,而且本来评论就很少了,(这么一分就都看不见了)。所以我想是否可以利用我的说说页面中的,点击评论按钮后后会在评论区添加一个:> + “文本”,从而实现类似引用的功能,那么也就实现了仿段落评论,同时所有的评论都会在评论区显示,避免了因为都在段落评论而导致主评论区没人的尴尬局面。
柳神
2024/05/30
1850
twikoo仿段落评论,实现快速评论功能
零基础打造一款属于自己的网页搜索引擎
在说这个之前,想必大家应该都比较了解搜索引擎了,它就是通过用户在浏览器输入框中输入文本,从而显示一些结果,你觉得哪项符合你要搜索的内容,你就点击哪项。
前端皮皮
2020/11/26
2.2K0
零基础打造一款属于自己的网页搜索引擎
前端水印实现方案
为了防止信息泄露或知识产权被侵犯,在web的世界里,对于页面和图片等增加水印处理是十分有必要的,水印的添加根据环境可以分为两大类,前端浏览器环境添加和后端服务环境添加,简单对比一下这两种方式的特点:
落落落洛克
2021/07/05
2.5K0
前端水印实现方案
原生JS实现图片爆炸特效
分享一个由原生JS实现的图片爆炸特效,效果如下: 实现的代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <tit
越陌度阡
2020/11/26
18.8K0
原生JS实现图片爆炸特效
js动态创建div等元素实例
为了节省时间,就直接贴代码了!希望大家多多的关注我! <html> <head> <title>js动态创建div等元素实例</title> <style type="text/css"> </style> </head> <body> <script language="javascript"> var Test={ createDiv:function(){ var div = document.createElement
业余草
2019/01/21
12.6K0
DOM操作笔记
DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型”(Document Object Model)。
bamboo
2019/01/29
1.1K0
DOM操作笔记
为博客添加网站文章版权保护提示附带链接
文章的内容可以复制,但复制后会弹出版权提示,是一种较好处理方法,既能提高读者版权意识又不太影响用户体验。
小唐同学.
2022/02/23
1.4K0
为博客添加网站文章版权保护提示附带链接
相关推荐
页面添加水印效果实现
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验