REBAVO CRYPTO PRIMER

钓鱼网址的六种伪装:从地址栏认出假站,同形字与 punycode 速查

一条网址里真正决定你连去哪儿的,只有可注册域那一段;子域、路径、参数、页面标题全由做站的人自己填。这篇先摆三个网址让你判断,再把六种伪装逐个说明白——顶级域偷换、超深子域、连字符抢注、同形异义字、punycode,还有把真实落点藏在 @ 后面那一种,最后是一条三十秒能做完的核对流程。

两枚几乎相同的八角印记并排,右边那枚有一处笔画错位并被标成红色,示意假站与真站的差别常常只在一两个字符上

三个网址摆在这儿,你觉得哪一个属于 example.com 的持有人?

答案是第一个,而且只有第一个。后两个的落点分别是 account-verify.topsecure-login.top,跟 example.com 没有半点关系,它们只是把这几个字母摆在了你眼睛先扫到的位置。

(本文所有可疑网址都以纯文本给出,页面上没有一条是可以点的。示例里用的 example.com 是技术文档专门留出来做举例的域名,不指向任何真实站点。)

第二、三个也答对了的话,后面几节还有能捡的:同形异义字和 punycode 那两种,靠眼力是分不出来的。

I先答那三个:域名要从最后一个点往左读

一条网址里,只有一段字符有归属意义,其余全是做站的人可以随便填的。

网址的这一段比如谁说了算它能证明什么
协议https://任何人都能配传输被加密了,与对方是谁无关
@ 之前的那一段user@写链接的人什么都不能,还常被拿来骗人
子域login.www.域名持有人随便起什么都不能
可注册域 + 公共后缀example.com只有注册人你到底连去了谁
路径与参数/account/login?from=official任何人什么都不能
标签页标题、页面内容「XX 官方登录」任何人什么都不能

这张表里唯一那行「只有注册人」,就是全部判断的落脚点。读法因此很简单:从最右边开始,认出公共后缀,再往左取一段。

「往左取一段」有个例外

顶级域不总是只有一段。co.ukcom.cncom.au 这类多级后缀本身就占两段,人是在它们下面注册名字的。所以机械地「从右数两段」会在这些后缀上读错,把 co.uk 当成某个人的域名。

浏览器不靠猜,它查一份公开维护的清单。这份清单叫公共后缀列表(Public Suffix List),由 Mozilla 发起、按社区资源的方式维护,收录的是「互联网用户可以在其下直接注册名字」的那些后缀——它的主页写了这个定义,也说明了浏览器拿它做什么:限制 cookie 的作用范围、在界面上突出显示域名里最要紧的那一段、按站点归类历史记录。

换成人话:先找到公共后缀,它左边紧挨着的那一段才是有人真正掏钱注册的名字,两者合起来就是可注册域。example.com.account-verify.top 里的公共后缀是 .top,往左一段是 account-verify,所以这个地址归 account-verify.top 的持有人。前面那串 example.com 只是他给自己的子域起的名字,起成什么样都行。

这套读法对任何网站都成立

银行、邮箱、快递单号查询、报税系统、交易所,规则是同一条,因为它是域名系统本身的规则,跟行业无关。所以这一篇不针对某一家。想看某家交易所的具体样本——仿冒页面长什么样、假客服上来第一句说什么——仿冒站与假客服那一篇以一家为例逐条对着讲,两篇一起看比较完整。

II六种伪装,各骗你哪一眼

先给速查表。左边那列是你在地址栏里看到的形态,右边是它真正的落点。

伪装纯文本示例真实落点骗的是你哪一眼
顶级域偷换example.coexample.com.co另一个注册人你只认前面那个单词
超深子域example.com.login.secure-cdn.topsecure-cdn.top从左往右读,读到熟悉的词就停了
连字符抢注example-com.topexample-login.top那个连字符域名的注册人小字号下点和连字符几乎一样
同形异义字拉丁 a 被换成西里尔 а一个完全不同的域名字形没有可辨差别
punycode 形态xn--exmple-4nf.com一个含非 ASCII 字符的域名看着像乱码,你直接略过
落点藏在 @ 之后https://[email protected]/secure-login.top开头那段确实是真域名

顶级域偷换与连字符抢注

这两种成本最低。新的顶级域这些年批发式地开放,注册一个便宜到可以按批买;而 .co.com 只差一个字母,手机键盘上还挨着。连字符则更阴,因为在小字号无衬线字体里,连字符和点的宽度差别小到不值得指望。

有一条启发式挺好用:正经站点很少为了一个登录页去注册新域名。登录、找回密码、验证身份这类页面,通常挂在主域的子域或者路径下。所以看到 example-login.topsecure-example.app 这种「品牌词 + 功能词」的独立域名,先当可疑处理,再去主站找对应入口。

超深子域

把品牌词整段搬到最左边,真正的注册域压到最右边,中间用点分开,看上去就像一条正常的多级域名。它专治从左往右的阅读习惯:眼睛扫到熟悉的词,判断就已经做完了,后面那截被当成路径略过去。

这一种在手机上尤其管用,因为地址会被折叠,被折掉的往往正是最右边那两段。

落点藏在 @ 之后

知道这一手的人最少。按网址的通用写法,主机名前面允许放一段用户信息,中间用 @ 隔开。也就是说,https://[email protected]/signin 这条地址里,真正被访问的是 @ 后面那个主机,前面那串真域名只是一段被当作用户名处理的字符。

浏览器对它的处理并不统一:有的会先弹一句警告,有的直接把前缀抹掉再跳转,也有的照单全收。而邮件客户端和聊天软件的预览里,前缀往往原样显示,你看到的第一眼就是那个真域名。还有一种变体是把 @ 写成它的编码形式 %40,更不起眼,检查时一并搜一下这四个字符。

IIIxn-- 开头的那些:同形字与 punycode

域名系统底层只吃一小撮 ASCII 字符。要让中文、俄文、阿拉伯文的名字也能当域名用,就得先把它们编码成 ASCII 再送进解析流程,而这套编码的结果统一以 xn-- 开头。所以 xn-- 不是乱码,它是一个含非 ASCII 字符的域名的机器写法,正规的中文域名也长这样。

问题出在有些非 ASCII 字符和拉丁字母长得一模一样。西里尔小写 а 与拉丁 a、希腊小写 ο 与拉丁 o,在多数正文字体下画出来没有可辨差别,可它们是不同的字符,编码之后指向完全不同的域名。也就是说,两个在你屏幕上一模一样的地址,可以属于两个毫不相干的人。

Unicode 联盟专门为这件事出过一份技术标准:UTS #39《Unicode 安全机制》。它给出一套「易混淆字符」数据,用来判断两个字符串是不是看起来一样,还定义了混合书写系统的检测和几个由严到松的限制等级,最严的一级只允许纯 ASCII——标准原文在这里,它开宗明义说的就是识别域名这类标识符里的仿冒。浏览器决定把一个域名显示成原样还是显示成 xn-- 形式,用的大体是同一类判断。

各家浏览器的具体策略不一样,也一直在调,所以别把「我的浏览器会提醒我」当成一道防线。它提醒了当然好,没提醒也说明不了这个域名干净。

还有一类不需要非 ASCII 字符

全 ASCII 的形近字更常见,也更没人提醒你:小写 l 和大写 I 在不少无衬线字体里几乎同形,数字 0 和字母 o 差一点点,而 r 和 n 挨在一起看着像 m——把 example.com 写成 exarnple.com,小字号下要盯一会儿才分得开。这一类不会触发任何浏览器提示,因为从字符层面看它完全合法。

对付这两类的办法是一样的:别用眼睛比,用工具比。把可疑地址粘进站里的域名真伪校验器,它会标出这串字符里有没有非 ASCII 字符、可注册域那一段落在哪里、折算成拉丁字母之后和你想去的那个域名差几个字符。计算全在你自己的浏览器里完成,输入的内容不会发出去。

IV一条链接进来时,三十秒能做完的核对

顺序固定,一步不过就停下,不必把后面几步做完。

  1. 先别点。长按或者右键复制链接地址,把判断放在打开之前。
  2. 搜 @ 和 %40。整条地址里出现这两样中的任何一个,到此为止。
  3. 从最右边读。认出公共后缀,往左取一段,这一段不对就到此为止。
  4. 看有没有非 ASCII 字符或 xn-- 前缀。有就当假的处理,别赌它是正规的中文域名。这一步和上一步都可以交给域名校验器代劳,它一次把两样都标出来。
  5. 四步都过了,仍然别用这条链接。从书签或者自己敲的地址进站,再走到对应页面。多花二十秒,把最后那点不确定去掉。

显示的文字和真实落点可以毫无关系

网页和邮件里的链接,显示成什么字由作者决定,真正的落点写在另一处属性里,两者之间没有任何强制关联。链接文字写着一个正确的域名,落点是别处,这是最省事的一种伪装。

桌面上把鼠标停在链接上别点,窗口左下角会弹出真实地址;手机上长按会出预览。有一处例外值得记住:不少企业邮箱会把所有外部链接改写成自家安全网关的地址,于是你悬停看到的是网关域名,原始落点被包在参数里,这时候看也白看,只能自己从站内进。

手机、聊天软件、二维码

移动浏览器为了省地方,地址栏默认只留域名附近一小截,中间省略成两个点,被省掉的常常正是超深子域里最该看的那一段。点一下地址栏让它进入编辑状态,完整地址就展开了;或者长按复制出来,粘到备忘录里看。

聊天软件的内置浏览器更彻底,顶上有时只有一个标题,地址根本不露面。遇到这种就选「在浏览器中打开」。二维码是同一类问题的极端形态:扫之前你对落点一无所知,扫出来之后第一件事是看地址,而不是看页面长得像不像。

我给自己定的规矩

从消息里进来的链接,我一律不点,也不做判断——判断本身有出错率,而我不想在赶时间的时候还得指望自己状态好。真要用某个站,我会花几分钟把域名逐字看清楚,存进书签,之后只从书签进。

代价很实在:限时活动的入口我经常错过,换台电脑要重建一遍书签,在别人的机器上等于什么都做不了。另外我不给人发短链接,因为不想让对方养成点短链的习惯。这些都是我自己的取舍,换个每天要处理几十条外部链接的人,恐怕撑不住这套。

STOP

地址栏读法能回答的是「我连去了谁」,回答不了「我自愿交出了什么」。所以还有一条与域名无关的硬规矩:助记词、私钥、验证器的备份密钥,任何页面、任何人问起都不给,哪怕域名逐字对得上——真站不会问这些。已经输进去的,走助记词与私钥那一篇说的迁移办法,改密码在那种情况下没有用。密码或验证码被骗走的,则先按两步验证怎么选里说的把验证方式重新排一遍。

RECAP
  • 一条网址里只有可注册域那一段有归属意义,子域、路径、参数、标题都由做站的人填。
  • 读法:从最右边认出公共后缀,往左取一段;co.uk 这类多级后缀要多读一段。
  • 六种伪装:顶级域偷换、超深子域、连字符抢注、同形异义字、punycode 形态、落点藏在 @ 之后。
  • xn-- 开头说明域名含非 ASCII 字符,正规中文域名也这样;但在要输密码的场合,看到它就停。
  • 全 ASCII 的形近字(l 与 I、0 与 o、rn 与 m)不会触发任何浏览器提示。
  • 链接显示的文字和真实落点无关;企业邮箱的安全网关会把落点包起来,看也看不出。
  • 核对顺序:先别点,搜 @ 与 %40,从右读公共后缀,查非 ASCII 与 xn--,最后仍从书签进。

提醒一句:浏览器对同形字和 @ 前缀的处理策略各家不同,也会随版本调整,本页写的是编辑组 2026 年 8 月核对时的情况。文中所有可疑网址均为纯文本示例,不指向真实站点。本站不代收资金、不代办账户申诉,也不会主动联系你索要账户信息。加密资产价格波动大,文章只讲操作,不构成投资建议。

V问得最多的六个

域名到底该从哪一头开始读?

从最右边开始。先认出最后那个公共后缀,往左再取一段,这两部分合起来就是可注册域,它决定了你连去谁的服务器。左边所有用点隔开的部分都是子域,由域名持有人随便起,写成什么样都不能说明归属。碰到 co.uk、com.cn 这类多级后缀,公共后缀本身就占两段,要再往左多读一段。

网址开头有 https 和锁形图标,能说明它是真站吗?

不能。锁形图标说明的是这条连接被加密了,别人在中间看不到内容,它不回答对方是谁。证书如今申请门槛很低,做假站的人顺手就能配一张,所以绝大多数钓鱼站都是 https 开头、都带锁。有归属意义的仍然只有可注册域那一段。

xn-- 开头的网址一定是钓鱼站吗?

不一定。域名系统底层只接受一小撮 ASCII 字符,含中文、俄文这类非 ASCII 字符的域名要先编码成 ASCII 才能解析,编码结果统一以 xn-- 开头,正规的中文域名也长这样。但在你准备输密码的场合,看到它就该停一停:同形异义字的伎俩正是靠这一层实现的。

邮件里链接显示的地址和真实地址会不一样吗?

会,而且这是最省事的一种伪装。链接显示成什么字由写邮件的人决定,真正的落点写在另一处属性里,两者可以毫无关系。桌面上把鼠标停在链接上、看窗口左下角弹出的地址,手机上长按调出预览,都能看到真实落点。有些企业邮箱还会把所有外链改写成自家安全网关的地址,那种情况下你看到的不是原始落点,只能自己从站内进。

短链接怎么判断真假?

判断不了,这正是它的功能。缩短后的地址不携带任何关于最终落点的信息,展开工具也只能解出它当下返回的那一跳,而服务端完全可以按来访者返回不同的目标。凡是要你输密码或者动资金的站点,就别用短链接进,自己从书签或手敲的地址进去。

手机上地址栏被省略成两个点,怎么看全?

点一下地址栏让它进入编辑状态,完整地址会展开;或者长按复制出来,粘到备忘录里看。移动浏览器为了省地方通常只留域名附近的一小截,被省掉的往往正是超深子域里最该看的那一段。从聊天软件内置浏览器打开的页面更麻烦,顶上常常只有一个标题,这时候选在浏览器中打开,把地址露出来再判断。

I
域名真伪校验器
粘一个地址,当场判
II
仿冒站与假客服
拿一家做样本逐条对
III
两步验证怎么选
哪一档挡得住钓鱼站