如何修复Java Web应用程序中的Trust Boundary Violation缺陷

时间:2013-02-20 10:11:40

标签: java security veracode

我收到了Veracode的信任边界违规行为。 我的代码是

userName= req.getParameter(Constant.USERNAME);
session.setAttribute(Constant.USERNAME, userName); //At this line i am getting Trust Boundry Violation flaw.

如何验证userName以避免信任边界违规缺陷?

4 个答案:

答案 0 :(得分:4)

只需使用正则表达式根据您的用户名遵循的规则验证userName:

if(userName.matches("[0-9a-zA-Z_]+")
     session.setAttribute(Constant.USERNAME, userName);

答案 1 :(得分:0)

VeraCode将要求您提交缓解措施。他们将安排与您协商,在那里您可以向他们展示已实施的代码修复,然后他们将标记缓解批准。

是的,我知道这已经很晚了,但其他人可能会匆匆而过,需要指出。

答案 2 :(得分:0)

将用户输入设置为会话时,发生违反信任边界的情况。使用此漏洞攻击者可以在会话中设置任何其他用户名,并且可能导致假冒。凡访问用户名的地方都是session(session.getattribute)中的代码,它将为该用户提供攻击者特权。

缓解措施:在将用户输入设置为会话之前,请确保设置到会话中的用户名是经过身份验证的用户。

答案 3 :(得分:0)

使用 ESAPI.validator().getValidInput(...) 验证您的数据,然后将值设置到会话对象中。