站上挂了个外部链接,出事了算谁的

外链跳转提示插件 使用文档
外链跳转提示插件 使用文档

合作方的链接挂在首页,有一天那个域名换了主人,点进去是个钓鱼页。用户投诉过来,第一句话是「你们站上放的链接」。

外链跳转提示(LinkExternalJumper)在用户点外链时插一道提示页,把目标地址原样显示出来,让用户自己决定要不要继续。它只依赖 Vendor(1.2.0 以上),装完在「功能设置 → 外链跳转提示插件」里配置。

它是怎么生效的

模块通过 PageBodyAppend 钩子往页面底部注入一段脚本,监听所有 a 标签的点击。判断逻辑是:

  • 链接是一个带协议的绝对地址,即以 http、https 开头,或者以双斜杠开头的协议相对地址
  • 并且不是以当前站点的协议加域名开头

两条都满足,就把这个链接的地址改写成 /link_external_jumper?target=编码后的原地址。

因为是运行时改写,静态 HTML 里的 href 不变。用户鼠标悬停时状态栏显示的还是原地址,复制链接拿到的也是原地址。

白名单

设置页第一项 LinkExternalJumper_WhiteList 是一组字符串,匹配规则是前缀匹配:只要目标地址以白名单里某一项开头,就直接放行,不弹提示。

配置项的帮助文字里举的例子是一个完整的站点地址(协议加域名,不带路径)。要注意它比的是开头:只填域名匹配不上带协议的完整地址,不带 www 的写法也匹配不上带 www 的地址。把自己的各个子站、支付域名、已知合作方逐个填全,协议和域名都要写全。

这项是 1.3.0 才加的。更早的版本没有白名单,所有外链都会拦一道。

提示页长什么样

页面是一个居中的白色卡片,上方是站点 Logo(读系统配置的 siteLogo),下面是提示文字,再下面是完整的目标地址,右下角一个「继续访问」按钮。

提示文字在 LinkExternalJumper_Tips 里配,默认是「您即将离开本站,请注意您的帐号和财产安全」。

目标地址是完整显示的,不做缩短也不做隐藏,1.3.1 修了超长链接溢出的问题。用户能看清要去的是哪个域名。

没传 target 参数时,页面会跳回站点首页,不会白屏。

外链跳转提示页,卡片上显示目标地址与「继续访问」按钮

适合与不适合

适合:内容里有大量外部链接的站点,论坛、导航站、资源下载站。用户贴的链接不可控,加一道提示能减少纠纷。

不适合:外链很少、且都是自己可控的域名(白名单能解决,但收益不大);或者对跳出率非常敏感的场景,多一次点击就会掉一批人。

它不做安全检测,不会判断目标站点是不是钓鱼站,只是把地址摊开给用户看。要真的识别恶意链接得另外接检测服务。

上线前

先把白名单填满。这是最先要做的,否则自己的支付回调、微信公众号授权这些外部跳转也会被拦一道,用户会卡在提示页上。

然后找一个已知的外链点一下,确认提示页出现、地址显示完整、点「继续访问」能到目标页。

最后检查页面上用 JS 动态生成的链接。脚本用的是委托绑定,理论上动态插入的链接也能覆盖,但如果某个组件自己阻止了冒泡或者用了 window.open,就绕过去了。

更新: 2026-11-13 16:01:37
QQ
微信
客服