我有一个用Java Struts 2编写的应用程序。我们检测到一个开放的重定向漏洞。
当网页通过用户控制的输入重定向到另一个域中的另一个网址时,会发生打开重定向。
例如:
当我们尝试myapp.abc.com/test.action?redirect:google.com/?
之类的网址时,会重定向到google.com
。
出于安全考虑,我需要预防此问题。它不应重定向到除我们的域之外的任何其他域。如何防止此类攻击?
答案 0 :(得分:0)
重定向参数被S2-016阻止。
如果您仍然使用它,那么您应该通过请求手动解析参数。
您可能需要学习how Struts2 handles request parameters from the URL。
由于特殊参数由ActionMapper
处理。默认实现用于删除易受攻击的参数,然后您需要编写自定义操作映射器。
要使用带有struts的自定义动作映射器,您需要通过
进行配置constant name="struts.mapper.class" value="restaurants" />