2016-11-19 78 views
0

我在這些行中得到了SONAR違規的錯誤。如何解決這個問題?如何通過SONAR指出session.setAttribute()中的信任邊界違例?

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 

見 尖角,CWE-501 - 信任邊界破壞}

回答

0

我們必須使用 「登錄」 作爲字符串LOGIN = 「登陸」 就是這樣其刪除SONAR違規 或者因爲它是硬編碼的,你也可以通過使用屬性文件或xml文件來傳遞它