防范应用中的链接型漏洞:反标签劫持、失效链接劫持与开放重定向
我在Honeybadger博客上的第二篇客座文章《保护您的应用免受链接型漏洞攻击:反标签劫持、失效链接劫持与开放重定向》刚刚发布!
漏洞类型概述
反标签劫持(Reverse Tabnabbing)
恶意链接通过target="_blank"属性打开新页面时,可能通过window.opener对象篡改原页面内容。
失效链接劫持(Broken-Link Hijacking)
攻击者注册已被废弃的域名,利用应用中残留的旧链接实施钓鱼或恶意软件分发。
开放重定向(Open Redirects)
未经验证的重定向参数允许攻击者将用户导向恶意网站,常被用于网络钓鱼攻击链。
防护方案
-
反标签劫持防护
1 2 3 4<!-- 添加rel="noopener noreferrer"属性 --> <a href="https://example.com" target="_blank" rel="noopener noreferrer"> 安全链接 </a> -
失效链接劫持预防
- 定期审计外部链接有效性
- 使用链接状态监控工具
- 实施301重定向至新资源
-
开放重定向修复
1 2 3 4 5 6// 验证重定向目标域名白名单 const allowedDomains = ['trusted-site.com', 'myapp.com']; function safeRedirect(url) { const targetHost = new URL(url).hostname; return allowedDomains.includes(targetHost) ? url : '/fallback'; }
安全实践建议
- 对所有用户提供的链接实施严格验证
- 使用Content Security Policy(CSP)限制潜在恶意行为
- 定期进行安全审计和渗透测试
原文发布于2020-07-29 | 标签:安全漏洞、反标签劫持、失效链接劫持、开放重定向