菜单
本页目录

一、为什么要开发这个插件?

前段时间,读了一篇博客,有位博主提及自己的博客内有一些恶意链接或者链接被人劫持,自己未能及时发现并从博客上清理掉而导致博客被搜索引擎拉入黑名单中。面对这种情况,有时候就算及时处理了,也可能在外链的权重上或多或少受到波及。

如果加了安全跳转中台后,这样就可以让自己的主域名成功与外链间接通过中台串联,而不是直接关系。这样就会避免自己的博客被搜索引擎拉黑或导致拉黑的机率提高。由于网络安全的问题这些年越来越被关注,好多大型平台例如微博,微信,qq,网易等,都在这几年为自家的网络产品添加了一个安全跳转的中台页面。

我也想好好把这个博客站经营下去,不想被一些恶意链接导致站点被拉黑,因此也比较担心自己的站点也会出现此类问题,于是便想开发一款插件来避免此类情况发生!

二、插件是如何避免网站被拉黑的?

插件主要是通过 halo官方 提供的文章渲染扩展点,通过 JSoup解析到文章内容的所有 a 标签,之后修改 a 标签的 href 属性,而这个 href 属性是我们的安全跳转中台,关键的一点就是在 a标签的 rel属性 中加入 noopener external nofollow noreferrer 这个值。

超链接a标签的 rel="noopener noreferrer"属性是一种新特性,它能让网站更安全,超链接添加rel="noopener noreferrer"来防止钓鱼网站,因为它获取的window.opener的值为null。在新打开的页面中,通过window.opener可以获取到源页面的部分控制权,即使新打开的页面是跨域也可以获取部分控制权。当a标签中加入了rel="noopener noreferrer"属性,window.opener 会为null。

超链接添加 rel=external nofollow 是为了告诉搜索引擎,不要将链接计入权重中,他是告诉一些非本站的链接、不想传递权重,例如网页里的统计代码、备案号链接、供用户查询链接等。这两个属性的大致可以解释为 “这个链接非本站链接,不要爬取也不要传递权重”

此外,还加入了一些其他安全检测,比如XSS攻击等。后续在插件的维护升级中,会加入更多的安全检测类型来保证自己博客站点的安全性。

下边是整体的实现效果: 默认风格效果 lsd-new-alig.png

极客风格效果预览,视频转换为 gif后比价模糊,具体效果在插件中自行查阅(V1.4.0 版本及其之后)

简约风格效果预览(V1.4.0 版本及其之后) simple-light.png simple-dark.png