如何解决session.setAttribute()中的信任边界违规问题由SONAR指出?

时间:2016-11-19 06:57:11

标签: java session sonarqube access-violation

我在这些行中将此错误视为SONAR违规。怎么解决这个?

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

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

这是该行的SONAR输出

{

规则

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

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

请参阅 MITER,CWE-501 - 信任边界违规}

1 个答案:

答案 0 :(得分:0)

我们必须使用“login”作为String LOGIN =“login” 这就是删除SONAR违规的原因 或者,由于它是硬编码的,您也可以使用属性文件或xml文件传递它