如何解决 SONAR 指出的 session.setAttribute() 中的信任边界冲突?

How to Solve Trust Boundary Violation in session.setAttribute() point out by SONAR?

我在这些行中收到此错误作为 SONAR 违规。如何解决这个问题?

HttpSession session = this.globals.getHTTPServletRequest()
                                   .getSession();                       
session.setAttribute("CONTEXT",this.globals.getHTTPServletRequest().getContextPath());
//issue is in this line 

确保在将此数据存储到会话之前对用户进行身份验证。

这是该行的 SONAR 输出

{

规则

更新日志 不受信任的数据不应存储在会话中 Web 会话中的数据被认为在 "trust boundary" 内。也就是说,它被认为是值得信赖的。但是,存储来自未经身份验证的用户的未经审查的数据违反了信任边界,并可能导致该数据被不当使用。 当来自 Cookies 或 HttpServletRequests 的数据存储在会话中时,此规则会引发问题。 不合规代码示例

login = request.getParameter("login");
session.setAttribute("login", login);  // Noncompliant

见 MITRE,CWE-501 - 违反信任边界}

我们必须使用 "login" 作为字符串 LOGIN = "login" 就是这样消除了 SONAR 违规 或者因为它是硬编码的,您也可以使用 属性 文件或 xml 文件

传递它