为什么包含单个emoji的域名会跳转至其他已存在的不安全站点?
Vim gx 命令的行为说明
Vim内置的gx命令默认会将光标下的字符串尝试识别为URL调用系统默认浏览器打开,当光标停在emoji字符上时,Vim会按照国际化域名的编码规则,将非ASCII的emoji转换为Punycode格式,自动补全.com后缀后作为URL传递给浏览器,这是Vim的默认设计逻辑,不属于异常bug。
这类域名属于真实存在的有效域名
你遇到的xn--开头的域名是符合国际标准的国际化域名(IDN)的Punycode编码结果,作用是把包括emoji在内的非ASCII Unicode字符转换为DNS系统可识别的ASCII字符串。只要符合注册规则,这类emoji域名是可以被正常注册持有的,比如xn--g1h.com对应的就是▶️.com,属于真实存在的有效域名,并非系统临时生成的虚拟地址。
重定向的实现逻辑
域名持有者完成注册后,会在域名对应的服务端配置3xx系列的HTTP重定向规则,用户访问该域名时,服务端会直接返回重定向响应,浏览器收到响应后就会自动跳转到规则指定的目标站点。你观察到的无合法证书、跳转内容异常等情况,大多是这类域名被用于恶意流量导流、钓鱼等非法用途导致的。
浏览器未主动报错的原因
目前主流的Chromium、Firefox等浏览器都默认支持IDN域名解析,只要Punycode编码格式合法,浏览器会将其判定为正常域名发起请求,不会直接抛出错误。只有当目标站点被浏览器内置的恶意站点库收录、或者HTTPS证书验证不通过时,才会弹出拦截警告。未被拦截的站点要么是暂未被安全库标记,要么是使用HTTP协议访问,仅会在地址栏显示不安全标识,不会强制拦截。
安全建议
emoji域名的Punycode形式识别门槛极高,很容易被用于钓鱼攻击,日常不要随意访问未知来源的emoji链接,遇到证书无效的站点直接关闭即可,不要手动跳过安全警告访问。
内容的提问来源于stack exchange,提问作者user16753893

