QQ扫一扫联系
合作方的链接挂在首页,有一天那个域名换了主人,点进去是个钓鱼页。用户投诉过来,第一句话是「你们站上放的链接」。
外链跳转提示(LinkExternalJumper)在用户点外链时插一道提示页,把目标地址原样显示出来,让用户自己决定要不要继续。它只依赖 Vendor(1.2.0 以上),装完在「功能设置 → 外链跳转提示插件」里配置。
模块通过 PageBodyAppend 钩子往页面底部注入一段脚本,监听所有 a 标签的点击。判断逻辑是:
两条都满足,就把这个链接的地址改写成 /link_external_jumper?target=编码后的原地址。
因为是运行时改写,静态 HTML 里的 href 不变。用户鼠标悬停时状态栏显示的还是原地址,复制链接拿到的也是原地址。
设置页第一项 LinkExternalJumper_WhiteList 是一组字符串,匹配规则是前缀匹配:只要目标地址以白名单里某一项开头,就直接放行,不弹提示。
配置项的帮助文字里举的例子是一个完整的站点地址(协议加域名,不带路径)。要注意它比的是开头:只填域名匹配不上带协议的完整地址,不带 www 的写法也匹配不上带 www 的地址。把自己的各个子站、支付域名、已知合作方逐个填全,协议和域名都要写全。
这项是 1.3.0 才加的。更早的版本没有白名单,所有外链都会拦一道。
页面是一个居中的白色卡片,上方是站点 Logo(读系统配置的 siteLogo),下面是提示文字,再下面是完整的目标地址,右下角一个「继续访问」按钮。
提示文字在 LinkExternalJumper_Tips 里配,默认是「您即将离开本站,请注意您的帐号和财产安全」。
目标地址是完整显示的,不做缩短也不做隐藏,1.3.1 修了超长链接溢出的问题。用户能看清要去的是哪个域名。
没传 target 参数时,页面会跳回站点首页,不会白屏。

适合:内容里有大量外部链接的站点,论坛、导航站、资源下载站。用户贴的链接不可控,加一道提示能减少纠纷。
不适合:外链很少、且都是自己可控的域名(白名单能解决,但收益不大);或者对跳出率非常敏感的场景,多一次点击就会掉一批人。
它不做安全检测,不会判断目标站点是不是钓鱼站,只是把地址摊开给用户看。要真的识别恶意链接得另外接检测服务。
先把白名单填满。这是最先要做的,否则自己的支付回调、微信公众号授权这些外部跳转也会被拦一道,用户会卡在提示页上。
然后找一个已知的外链点一下,确认提示页出现、地址显示完整、点「继续访问」能到目标页。
最后检查页面上用 JS 动态生成的链接。脚本用的是委托绑定,理论上动态插入的链接也能覆盖,但如果某个组件自己阻止了冒泡或者用了 window.open,就绕过去了。