由于Spring Security 4.2.4中新的StrictHttpFirewall,后台Office Spring MVC矩阵变量导致异常

2020-09-19 19:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)自从Hybris 6.6.0.3...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


自从Hybris 6.6.0.3起,我们在后台应用程序中遇到了麻烦。 在" https://localhost:9002/backoffice "处打开后台办公室时,Spring Security将重定向发送到" https://localhost:9002/backoffice/login.zul"。如果未检测到cookie,则使用Spring MVC矩阵变量附加会话ID,例如: " https://localhost:9002/backoffice/login.zul; jsessionid = CE6AC0708F276131587063F703587B3A"。

从Spring Security/MVC 4.2.4开始,默认情况下禁止使用矩阵变量,请参阅: https://docs.spring.io/spring-security/site/docs/4.2.4.RELEASE/apidocs/org/springframework/ security/web/firewall/StrictHttpFirewall.html

因此,任何使用矩阵变量的URL都不再与后台应用程序一起使用。

我们强烈需要一个使用以前使用的DefaultHttpFirewall实现替换StrictHttpFirewall的修复程序,因为我们的客户之一不允许使用cookie,因此无法再使用后台。

SAP是否正在为此修复程序?

Thx,Bechte

4条回答
路亽曱_Ryan
2020-09-19 19:57 .采纳回答

嗨,

首先,感谢您的举报! 不过,我不认为我们应该将StrictHttpFirewall(由spring安全默认启用)更改为DefaultHttpFirewall(请注意,现在已描述DefaultHttpFirewall)。 Spring有某些理由将此类标记为已贬低。 更好的解决方案仍然是使用StrictHttpFirewall,但使用allowSemicolon = true。

作为解决方法,我建议编辑backoffice/web/webroot/WEB-INF/backoffice-spring-security.xml文件并添加以下bean声明:

  
          
      
      

  

我们将检查是否有可能以可配置的方式在框架级别添加此类声明(因为根据 https://docs.spring.io/spring-security/site/docs/current/reference/html/security-filter-chain.html

默认情况下,使用StrictHttpFirewall。 此实现拒绝看起来是恶意的请求。 如果对您的要求过于严格,则可以自定义拒绝哪些类型的请求。 但是,重要的是要知道这样做可以使应用程序容易受到攻击。

此致

卢卡斯

一周热门 更多>