最近升级黑客说才发现网站被注入了 10 万个恶意链接(不影响正常用户)。 这是一种黑帽 SEO 的攻击方法,即使你使用 React 现代、安全的框架,后端做了注入防御,也有可能会被攻击。
HackerTalk 提升用户体验的关键方法是大量利用缓存数据,优先显示页面再请求新数据覆盖,避免阻塞。 tags 这个页面也是如此,拿到 url 的 tagName 参数后优先显示在页面上再加载,黑产利用这点在外站大量伪造空链接,搜索引擎爬的时候能在本站 html 上发现相关内容,从而实现了注入。
这种注入不影响用户内容,也无法被用户发现,因为这些 tag 都是 404,但本站出现了其他站点域名等信息,按 pagerank 算法会给他们加权重,同时降低本站点内容评分,大量的垃圾链接导致流量下降。
做前端的都知道不要相信每个输入框的内容,我真没想到浏览器地址栏也是一个输入框。
解决的方法也很简单:
- 告诉搜索引擎不要收录这些页面
- tag 只能从内存拿,如果没有则显示 404 页面