 描述
 扩展描述
数据结构哨兵通常用来标记数据的结构。一个常见的例子是null字符的字符串或一个特殊的前哨来标记一个链表的结束。允许这种类型的控制是危险的数据很容易访问。因此,重要的是要保护添加或修改的哨兵。
 的关系
 模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
 常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性
|
通常这个错误将导致数据结构通过删除数据不能正常工作。 |
|
 利用的可能性
 示范例子
示例1
下面的例子将一些字符值赋给字符并打印每个单独的列表,然后作为一个字符串。第三个字符值的目的是成为一个整数来自用户的输入并转换为int。
char * foo; foo = malloc (sizeof (char) * 5); foo [0] = ' a '; foo [1] = ' a '; foo [2] = atoi (getc (stdin)); foo [3] = ' c '; foo [4] = ' \ 0 ' printf (" % % % c % c % c \ n”, foo [0], foo [1], foo [2], foo [3], foo [4]); printf (" % s \ n " foo);
第一个print语句打印每个字符用空格分隔。然而,如果一个非整数被getc从stdin读取,然后atoi不会让一个转换和返回0。当foo打印一个字符串,在字符0 foo[2]将作为一个空终结者和foo[3]永远不会被打印出来。
 潜在的缓解措施
阶段:实施;架构和设计
封装了用户与数据交互哨兵。验证用户输入验证哨兵不存在。 |
实施阶段:
适当的错误检查无意中引入哨兵值可以减少风险的数据。例如,如果一个解析函数失败或遇到错误,它可能会返回一个值,是一样的前哨。 |
阶段:体系结构和设计
使用一个抽象库抽象危险的api。这不是一个完整的解决方案。 |
阶段:操作
使用操作系统的预防功能。这不是一个完整的解决方案。 |
 会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
 分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
扣 |
|
|
数据结构的哨兵 |
CERT C安全编码 |
STR03-C |
|
不会不经意地以null结尾的字节字符串截断 |
CERT C安全编码 |
STR06-C |
|
不要认为strtok()使解析的字符串不变 |
 引用
|