我在这些行中将此错误视为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 - 信任边界违规}
答案 0 :(得分:0)
我们必须使用“login”作为String LOGIN =“login” 这就是删除SONAR违规的原因 或者,由于它是硬编码的,您也可以使用属性文件或xml文件传递它