51Testing软件测试论坛

标题: Trust Boundary Violation [打印本页]

作者: duibuqi    时间: 2010-10-18 12:02
标题: Trust Boundary Violation
本帖最后由 duibuqi 于 2010-10-18 12:05 编辑

Abstract:
可信赖的数据和不可信赖的数据共同混合在同一数据结构中会导致程序员错误地信任未经验证的数据。
Explanation:
信任边界可以理解为在程序中划分的分界线。分界线的一边是不可信赖的数据。分界线的另一边则是被认定为是可信
赖的数据。验证逻辑的用途是允许数据安全地跨越信任边界 — 从不可信赖的一边移动到可信赖的另一边。
当程序使可信赖和不可信赖的分界线模糊不清时,就会发生 Trust Boundary Violation 漏洞。发生这种错误的最普遍方式
是允许可信赖的数据和不可信赖的数据共同混合在同一数据结构中。
示例:以下 C# 代码会接受一个 HTTP 请求,并且在检查这个用户是否合法之前,就将 usrname 参数存储在 HTTP 会话
对象中。
usrname = request.Item("usrname");
if (session.Item(ATTR_USR) == null) {
session.Add(ATTR_USR, usrname);
}
若不对信任边界进行合理构建及良好维护,则程序员不可避免地会混淆哪些数据已经过验证,哪些尚未经过验证。这
种混淆最终会导致某些数据未经验证就加以使用了。

这是Fortify给出的解释,且不说这个例子很白痴,我就想知道怎么验证数据才算合法的,菜鸟求助。。。
QQ:www.wpj@163.com




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2