CodeQL 文档

客户端 URL 重定向

ID: js/client-side-unvalidated-url-redirection
Kind: path-problem
Security severity: 6.1
Severity: error
Precision: high
Tags:
   - security
   - external/cwe/cwe-079
   - external/cwe/cwe-116
   - external/cwe/cwe-601
Query suites:
   - javascript-code-scanning.qls
   - javascript-security-extended.qls
   - javascript-security-and-quality.qls

单击以在 CodeQL 代码库中查看查询

重定向到从 DOM 部分构建的 URL,而这些部分可能受攻击者控制,会促进钓鱼攻击。在这些攻击中,毫无戒心的用户可能会被重定向到一个恶意网站,该网站看起来非常类似于他们打算访问的真实网站,但实际上是由攻击者控制的。

建议

为了防止不受信任的 URL 重定向,建议避免将用户输入直接放入重定向 URL。相反,在服务器上维护一个授权重定向列表;然后根据提供的用户输入从该列表中进行选择。

示例

以下示例使用正则表达式从文档 URL 中提取查询参数,然后使用它来构建一个新的 URL 以进行重定向,而无需任何进一步的验证。这可能允许攻击者制作一个链接,该链接从受信任的网站重定向到他们选择的任意网站,从而促进钓鱼攻击。

window.location = /.*redirect=([^&]*).*/.exec(document.location.href)[1];

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私