CWE-462: Duplicate Key in Associative List (Alist) 关联列表中的重复键
|
ID: 462 类型:基础 |
状态:未完成 |
描述
关联列表中的重复键可能导致非唯一键被误认为是错误
扩展描述
一个重复的键条目——如果alist设计正确的话——可以用作一个常量时间替换函数。但是,重复的键条目可能会被错误地插入。由于这种模糊性,建议不要在关联列表中使用重复的键条目,也不应允许使用重复的键条目。
相关视图
与“研究层面”视图(CWE-1000)相关
与“开发层面”视图(CWE-699)相关
引入模式
|
阶段 |
说明 |
|
架构与设计 |
|
|
实现 |
应用平台
语言
C (出现的可能性不确定)
C++ (出现的可能性不确定)
Java (出现的可能性不确定)
C# (出现的可能性不确定)
后果
|
范围 |
冲击 |
可能性 |
|
其它 |
技术冲击: 质量下降;根据上下文而变 |
被利用的可能性:
低
示例
例1
下面的代码将数据添加到列表中,然后尝试对数据进行排序。
(问题代码)
Example Language: Python
alist = []
while (foo()): #now assume there is a string data with a key basename
queue.append(basename,data)
queue.sort()
因为basename不一定是唯一的,所以它可能不会按照人们希望的方式进行排序。.
应对措施
|
阶段: 架构与设计 使用哈希表替代线性列表 |
|
阶段: 架构与设计 在插入条目之前,使用一个清单检查每个条目的哈希键的唯一性。 |
种属
|
关系 |
类型 |
ID |
名称 |
|
属于 |
744 |
CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV) |
|
|
属于 |
878 |
||
|
属于 |
977 |
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)