使用url防止重定向

时间:2018-03-12 12:26:46

标签: java struts2

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

当网页通过用户控制的输入重定向到另一个域中的另一个网址时,会发生打开重定向。

例如: 当我们尝试myapp.abc.com/test.action?redirect:google.com/?之类的网址时,会重定向到google.com

出于安全考虑,我需要预防此问题。它不应重定向到除我们的域之外的任何其他域。如何防止此类攻击?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

要使用带有struts的自定义动作映射器,您需要通过

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