ID: 496 类型:变量 | 状态:未完成 |
描述
将公有数据赋值给私有数组相当于可以公开访问这个数组。
相关视图
与“研究层面”视图(CWE-1000)相关
与“开发层面”视图(CWE-699)相关
引入模式
阶段 | 说明 |
实现 |
应用平台
语言
C (出现的可能性不确定)
C++ (出现的可能性不确定)
Java (出现的可能性不确定)
C# (出现的可能性不确定)
后果
范围 | 冲击 | 可能性 |
完整性 | 技术冲击: 修改应用数据 数组内容可能在预计的范围之外被修改。 |
示例
例1
在下面的示例中,SETROLSER()方法将一个公开可控的数组分配给一个私有字段,从而允许调用方直接通过Java中的数组是可变的来修改私有数组。
(问题代码)
Example Language: Java
private String[] userRoles;
public void setUserRoles(String[] userRoles) {
this.userRoles = userRoles;
}
应对措施
阶段: 实现 不要允许对象修改类的私有成员。 |
种属
关系 | 类型 | ID | 名称 |
属于 | 485 | ||
属于 | 884 | ||
属于 | 994 |