博客

程序员的安全进阶:分享与学习系列 - 未经验证的重定向和转发

May 23, 2019
Jaap Karan Singh

编写能够处理未经校验的重定向和转发的网站或应用程序,对您的用户和组织而言都极其危险。黑客常利用这一常见错误实施网络钓鱼诈骗,或获取本应受限的页面及信息。

每当 Web 应用程序被设计为将用户转发到新页面时,这些请求就存在被篡改或劫持的风险。如果缺乏相应的校验机制来防止转发参数指向非预期的目标,就会发生这种情况。

好消息是,未经校验的重定向和转发是环境中较容易消除的漏洞之一。一旦消除,您只需采取几个简单的步骤,即可确保未来不再产生此类问题。

在本期节目中,我们将学习:

  • 黑客如何利用未经校验的重定向和转发漏洞
  • 为什么允许未经校验的重定向和转发会带来危险
  • 可用于发现并修复此问题的策略和技术。

攻击者如何利用未经校验的重定向和转发?

攻击者首先必须找到一个被设置为将用户转发到特定页面的 Web 应用程序。如果目标页面在代码中已定义,则不存在漏洞。例如,在 Java 中,这是一种安全且预定义的方式,无需用户执行任何操作(如点击超链接)即可将用户发送到新位置。

response.sendRedirect("http://www.knownsafesite.com");

如果网站被编程为接受用户输入的重定向,或者参数保持开放(例如为了从其他来源获取信息),就会出现漏洞。例如,开发人员可能会使用 "url" GET 参数。

response.sendRedirect(request.getParameter("url"));

虽然这提供了更大的灵活性,但也产生了未经校验的重定向和转发漏洞。黑客可以在斜杠后添加信息,触发重定向到他们选择的任何网站,这可能是网络钓鱼邮件的一部分。用户在链接的前半部分看到的是受信任的域名,因此没有意识到网站可能会将他们转发到黑客的站点。

为什么未经校验的重定向和转发如此危险?

允许未经校验的重定向和转发所带来的危险可能非常严重。对于用户而言,最大的危险是他们可能成为网络钓鱼攻击的受害者。因为他们看到了顶级 URL,所以更有可能信任钓鱼邮件或其他通信并点击链接。如果他们被重定向到的页面看起来像真实的页面,这种欺骗手段会非常有效。他们可能会泄露用户名、密码或其他凭据,而从未怀疑自己正受到操纵。

消除未经校验的重定向和转发带来的威胁

未经校验的重定向和转发始于应用程序开发阶段。虽然事后可以消除它们,但最简单的方法是在重定向或转发函数中从一开始就不允许使用用户参数或开放字符串。相反,应严格定义用户将被转发到的 URL,消除变量,不给攻击者留下可乘之机。更好的是,考虑完全不使用重定向和转发。

如果确实无法避免在重定向或转发过程中使用变量,则必须建立校验流程,以确保重定向的目标是预设的有效目的地之一。最后,使用映射值代替实际的 URL。这样黑客只能尝试使用 URL 信息,即使他们怀疑系统使用了映射方案,也很难猜出具体内容。

关于未经校验的重定向和转发的更多信息

如需进一步阅读,您可以查看 OWASP 参考页面,了解有关未经校验的重定向和转发的内容。您还可以通过 Secure Code Warrior 平台的 免费演示 来测试您新学到的防御知识,该平台旨在培训网络安全团队成为顶尖的网络战士。要了解更多关于击败此漏洞及其他一系列威胁的信息,请访问 Secure Code Warrior 博客。

彻底解决未经验证的重定向和转发漏洞。运用您新掌握的知识,在我们的游戏化培训平台上测试您的技能: [立即开始]

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。