2

我收到来自 Veracode 的信任边界违规。我的代码是

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

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

4

4 回答 4

4

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

if(userName.matches("[0-9a-zA-Z_]+")
     session.setAttribute(Constant.USERNAME, userName);
于 2013-02-20T10:14:25.680 回答
2

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

是的,我知道这已经晚了,但其他人可能会绊倒,需要指出。

于 2017-09-26T15:55:06.993 回答
0

当用户输入设置到会话中时会发生信任边界冲突。使用此漏洞,攻击者可以将任何其他用户名设置为会话,并可能导致假冒。访问用户名的任何地方的代码session(session.getattribute)都会赋予该用户的攻击者特权。

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

于 2019-08-19T02:30:14.903 回答
0

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

于 2021-01-13T18:48:07.193 回答