前言
网页的安全性优化是一个越来越被开发者重视的问题(例如配置 SSL 证书实现网站的 https 访问,通过插件对 XSS 攻击进行预防等),今天我们就来分析 掘金 是如何实现网站跳转外部链接时“拦截”并通知的功能。
一、业务场景
在 掘金 的文章或者沸点中打开一个链接时,如果为 外部链接 (非本站的链接)时,则会先跳转至一个风险提示的页面,告知用户即将打开的新页面 出现任何问题概不负责 非本站提供,注意账号财产安全。其实就是一个免责的声明。(以下将用一篇文章中的某个外部链接做演示。因为这个网站的加载动画非常好康)

其中最主要的提示页面如下图:

二、代码分析
1. 链接元素
我们需要对其代码(可见的)进行分析,首先关注点击跳转的元素。打开控制台 检查元素 查看此链接元素有什么特殊的地方。

通过上图我们可以直观看出链接前被拼接了掘金内部链接 https://link.juejin.cn/?target= ,而 = 后的网址才是真实网址。
2. 风险提示
然后我们再来看下风险提示页。

在 风险提示 页,只需将 URL 上的 target 参数取出并显示在页面中即可。(URL传参常见于各类搜索页面)
3. 链接处理
当然还有关键的一环是,这个链接是何时被处理成这样的。先来看看是不是在编辑文章时处理的。

从上图可知,编辑文章时链接并未实时做处理。我们知道掘金的文章草稿是实时保存的,那么我们来看下请求中发送的数据是否做了处理。


从发送的请求中可以看出字段 mark_conten

本文探讨了掘金如何在用户跳转外部链接时实施风险提示,以确保网页安全性。通过分析业务场景、代码结构,特别是前端的Vue.js实现,揭示了链接处理和风险提示页面的工作原理。此外,还提供了前端处理富文本链接的代码示例,总结了学习此类解决方案带来的价值。
最低0.47元/天 解锁文章
2281

被折叠的 条评论
为什么被折叠?



