You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript校验域名跳转方案阻止恶意域名镜像?

代码防护效果验证

第一段防嵌套代码

if (parent.frames.length > 0) { parent.location.href = self.document.location } 
  • 这段代码仅用于禁止你的页面被其他站点通过iframe嵌套展示,和你当前遇到的整站同步镜像场景完全无关,无法解决你的问题。

第二段域名校验跳转代码

var domain = "mysiteurl";
var redirect = "http://google.com"; 
if( (location.hostname != domain) && (location.hostname != "www."+domain) ) { location.href = redirect; } 
  • 逻辑本身是通顺的:只要访问域名不是你预设的主域名或带www前缀的主域名,就会触发跳转。但完全无法应对你当前的镜像场景,你标注的问题已经命中了核心缺陷:镜像站同步代码时会自动把你明文写的mysiteurl替换成自己的域名,替换后校验逻辑会判定镜像站域名是合法域名,不会触发跳转。
优化方案

如果要继续使用JS方案实现防护,核心是要规避镜像站的自动字符串替换规则,不要明文写出你的站点域名:

  1. 拆分拼接域名字符串,比如:
// 把你的域名拆成多段拼接,避免被自动替换规则识别
const domainSeg1 = 'mysite'
const domainSeg2 = 'url'
const validDomain = domainSeg1 + domainSeg2
const jumpTarget = '你自定义的跳转地址'
if (location.hostname !== validDomain && location.hostname !== `www.${validDomain}`) {
  location.href = jumpTarget
}
  1. 增加CSS暗桩校验:在你的页面中加入一个隐藏的专属DOM节点,只有你本站的CSS会给这个节点设置特殊的属性值(比如自定义data属性、固定的隐藏样式属性),JS检测到该属性不符合预期就触发跳转,镜像站修改CSS配色后会触发该规则。

纯前端JS方案无法做到100%防护,若镜像站人工分析你的JS逻辑可以手动破解,有条件建议配合服务端Host头校验、静态资源防盗链等规则共同使用。

内容的提问来源于stack exchange,提问作者danniee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:27:01