代码之家  ›  专栏  ›  技术社区  ›  user2331417

阻止使用url重定向

  •  1
  • user2331417  · 技术社区  · 7 年前

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

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

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Roman C    7 年前

    重定向参数被 S2-016

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

    也许你需要学习 how Struts2 handles request parameters from the URL

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

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

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