跳至主要内容
短.be

开放重定向

Web 应用程序未经验证就将用户重定向到外部指定的任意 URL 的安全漏洞。常被用于钓鱼攻击。

2026年8月23日 · 约 1 分钟阅读

安全

开放重定向 (Open Redirect) 是指 Web 应用程序在未验证外部传入的 URL 参数值的情况下,直接将其用作重定向目标的安全漏洞。在 OWASP (Open Web Application Security Project) Top 10 中,它被归入 2025 年版排名第一的访问控制失效 (A01),对应 CWE-601 (重定向到不可信站点)。

举个例子,当访问「https://trusted-site.com/redirect?url=https://evil-site.com」时,如果 trusted-site.com 不验证 url 参数的值就执行重定向,用户以为点击的是可信域名的链接,实际上却被引导到了恶意网站。

开放重定向被钓鱼攻击利用的原因在于,可信域名的 URL 成为了链接的入口。邮件安全过滤器和用户的肉眼检查往往只看链接开头是否为正规域名,就判定为安全。

短链接服务本质上就是重定向服务,因此与开放重定向问题密切相关。恶意用户利用短链接服务创建指向钓鱼网站的链接的案例确实存在。短链接服务方面也有防范措施,但采用哪些手段、能拦下多少,通常并不对外公开。用户能够看到的措施包括重定向前显示目标链接的警告画面 (闪屏页面)、不当使用的举报窗口等。不过,具备这些功能本身并不意味着该服务发出的链接就是安全的。与其根据检测机制来推测安全性,不如依据从外部能够确认的部分来判断。

开发者防范开放重定向的方法包括:用白名单限制重定向目标、仅允许相对 URL、验证重定向目标的域名等。无论何种情况,都应避免将 URL 参数直接用作重定向目标。

看似做了验证却仍留有漏洞的情形有两种。一种是用前缀匹配来校验域名:像「https://trusted-site.com.attacker-domain.example/」这样把主机名向后延长的 URL 能通过前缀检查,因此应解析 URL 取出主机名,再与白名单做完全匹配。另一种是把所有以「/」开头的值都当作相对 URL:「//attacker-domain.example/」会被解释为协议相对 URL,浏览器将跳转到其他域名,所以以「//」开头的值必须按外部 URL 处理。

分享到 XHatena

这篇文章对您有帮助吗?

相关术语

相关文章

常见问题

开放重定向有多危险?
单独来看不会直接导致信息泄露或系统入侵,但会大幅提高钓鱼攻击的成功率。由于可以用可信域名的 URL 作为入口,用户更容易上当。在 OWASP Top 10 中,它被归入 2025 年版排名第一的访问控制失效 (A01),对应 CWE-601。
短链接服务算是开放重定向的一种吗?
从技术上看确实是重定向服务,但跳转目标仅限于已在服务中登记的 URL,无法通过请求参数把目标换成任意地址。这正是它与「把外部传入的值直接当作跳转目标」这类漏洞的区别。不过登记的目标本身仍有可能是恶意网站,因此收到短链接时请先确认发送方再打开。
如何检查自己的网站是否存在开放重定向?
检查所有执行重定向的端点,确认是否将外部传入的 URL 直接设置到 Location 头中。使用漏洞扫描工具 (如 OWASP ZAP) 进行自动化检测也很有效。

把知识用到真实链接上

免费缩短网址