恶意镜像的解决方案:站长必看教程

早上看到群里有人提到恶意镜像网站的问题,他们说通过JavaScript验证、事件判断和加密技术就能搞定。所以,我试着用ChatGPT拿自己的网站当“小白鼠”完整的跑了一遍AI写的解决方案,完美!

现在我把整体的过程写下来,给想做这方面技术处理的朋友参考!

不是码农技术有限,本方案比较容易破解。适合小白对小白。哈哈!
暂时不再更新其他方案,有兴趣的朋友可以根据当前代码在AI平台再完善。

可以把代码内嵌在HTML中;可以通过PHP动态注入合法域名;还可以混淆JavaScript代码,使用Terser或Obfuscator.io对代码进行混淆压缩,增加破解难度;在服务端增加验证(如检查 HTTP_HOST 或 Referer)禁止JavaScript绕过等措施,进一步增强破解难度。

入门级方案,禁止大佬使用!禁止重要网站使用,仅限个人博客学习使用!

1. index.php 文件代码

下面这个代码是确保页面中引入 verify.js 文件代码。

这个代码要复制粘贴至网站根目录中的index.php 中(也可以用主题中的index.php),添加到后面即可,不要更改其他设置。

注意⚠️:一般原index.php中 最后一行没有 ?> ,为什么让代码完整,需要在原代码最后一行添加 ?> 然后再把下面的代码粘贴到下面。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My Blog</title>
</head>
<body>
  <h1>Welcome to My Blog!</h1>
  <p>这里是新域名 https://www.evan.xin 的主站内容。</p>
  <script src="verify.js"></script>
</body>
</html>

2. verify.js 文件

把下面的代码粘贴到一个新建的js文件中,把它也放在根目录下。

注意⚠️:记得把代码中的网站链接设置成自己的,千万别忘了。

(function () {
  // 定义合法域名
  const allowedDomains = ["www.evan.xin", "evan.xin"];
  const redirectUrl = "https://www.evan.xin";

  // 获取当前页面的主机名
  const currentDomain = window.location.hostname;

  // 验证函数
  function validateDomain() {
    if (!allowedDomains.includes(currentDomain)) {
      // 非法域名,执行跳转
      window.location.href = redirectUrl;
    }
  }

  // 添加事件监听器(防止镜像站屏蔽 JS)
  function addEventListeners() {
    document.addEventListener("click", validateDomain);
    document.addEventListener("mousemove", validateDomain);
    document.addEventListener("scroll", validateDomain);
    document.addEventListener("keydown", validateDomain);
  }

  // 启动验证
  validateDomain();
  addEventListeners();

  // 防止代码被简单篡改:混淆部分代码
  const hiddenLogic = (() => {
    const encode = str =>
      str
        .split("")
        .map(char => char.charCodeAt(0).toString(16))
        .join("");

    const decodedRedirect = decodeURIComponent(
      atob("aHR0cHM6Ly93d3cuZXZhbi54aW4=")
    );

    if (encode(currentDomain) !== encode("www.evan.xin")) {
      window.location.href = decodedRedirect;
    }
  })();
})();

至此,所有设置部分就完成了,还是非常简单的,但这个设置的有效性如何?

这个还是需要再测试,方法很多,我只列举一个我的方法。其他方式可以自行搜索,这里就不再过多赘述。

有效性测试

修改 hosts 文件

• 将一个伪造的域名指向服务器的真实 IP 地址。
• 编辑 hosts 文件:
Windows:C:\Windows\System32\drivers\etc\hosts
• macOS/Linux:/etc/hosts (我就列举macOS的了)
• 添加以下内容:
123.123.123.123 fake.xin
(将 123.123.123.123 替换为你的网站服务器的实际 IP 地址;后面的域名找一个不能用的就行)
• 在浏览器中访问 http://fake.xin 或 https://fake.xin,JS 会触发跳转到你的 RequestBin URL 就完成了

具体操作如下:

1. 快捷键 Shift + Command + G 调出前往窗口

2. 输入以下路径:

/etc

3. 进入文件夹后,找到 hosts

# Custom domain redirection
123.123.123.123   fake.xin

123.123.123.123 fake.xin IP改成自己网站的,域名改成你喜欢的。然后保存/刷新。文件中其他代码不要动!


4. 打开浏览器,访问 http://fake.xin 或 https://fake.xin,测试伪造域名是否有效。

伪造域名的基本规则

点击展开规则

1. 域名格式合法

• 确保伪造的域名符合标准域名规则:

• 只能包含字母(a-z)、数字(0-9)、连字符(-),但连字符不能位于开头或结尾。

• 顶级域名(如 .com, .xin)是有效的。

• 示例:

• 有效:fake.xin, test.local, mirror-1.example.com

• 无效:-fake.xin, fake_.xin, fake xin

2. 避免冲突的域名

• 避免伪造真实存在并常用的域名,例如 google.com 或 baidu.com,否则可能引发 DNS 冲突或影响你的正常上网。

• 推荐使用:

• 自定义的虚构域名(如 fake.xin)。

• 常用于本地测试的域名(如 .test, .local, .dev)。

3. 顶级域名的选择

• 可以选择任何合法的顶级域名(如 .com, .org, .xin)。

• 如果是内部或本地测试,可以使用保留的域名后缀(如 .test, .localhost)。

最后:毕竟自己是技术小白,如有遗漏欢迎指教,谢谢🙏

转载或引用本站文章请注明出处
© 2024 www.evan.xin

评论区 | 8 条评论
  • Router

    收藏备用,谢谢分享

    From : 苏州
    • Evan

      @Router 比较初级,功能没有问题,就是比较容易破解。😄

      From : 北京
  • obaby

    这个不错,收藏备用

    • Evan

      @obaby 适合初级个人博客,弄着玩。重要网站不要用,可以根据上面写的再完善。😉

      From : 北京
  • Nipe

    搞笑了,允许的网站都是明文的,有啥用

    From : 哈尔滨
    • Evan

      @Nipe 小白。嗯。确实。。我改进一下😈

      From : 北京
  • Evan

    温馨提示:建议大家可以把js的文件名,自定义一个。代码里面对应的改就完了。

    From : 北京
消息盒子
# 您有6条未读消息 #
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息