使用 url 防止重定向

Prevent redirection using url

我有一个用 Java Struts 编写的应用程序 2. 我们检测到一个开放重定向漏洞。

打开重定向发生在通过用户控制的输入将网页重定向到另一个域中的另一个 URL 时。

例如: 当我们像 myapp.abc.com/test.action?redirect:google.com/? 那样尝试 URL 时,它会重定向到 google.com

出于安全考虑,我需要阻止这种情况。它不应重定向到我们域以外的任何其他域。我如何防止此类攻击?

重定向参数被 S2-016 阻止。

如果您仍然使用它,那么您应该通过请求手动解析参数。

可能你需要学习how Struts2 handles request parameters from the URL

由于特殊参数由 ActionMapper 处理。并且默认实现用于删除易受攻击的参数,然后您需要编写自定义操作映射器。

要将自定义动作映射器与 struts 一起使用,您需要通过

配置它
constant name="struts.mapper.class" value="restaurants" />