描述
宣布公共产品有一个方法,但返回一个引用私人数据结构,它可以被修改以意想不到的方式。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性
|
数据结构的内容可以修改在期望的范围之外。 |
|
示范例子
示例1
这里,Java类中的公共方法返回一个引用一个私人数组。考虑到Java数组是可变的,任何修改返回的引用将会反映在最初的私人数组。
私人String[]颜色; 公共String[]色鬼(){
返回颜色; }
示例2
在这个例子中,颜色类定义的函数返回non-const引用私有成员(一个数组类型和一个整数类型),然后任意改变以外的控制类。
类的颜色 {
私人:
int [2] colorArray; int colorValue; 公众:
颜色():colorArray {1,2}, colorValue (3) {}; int [2] & fa(){返回colorArray;}/ /返回引用私人数组
int &阵线(){返回colorValue;}/ /返回引用私人整数
};
int main () {
颜色c;
c。fa () [1] = 42;/ /修改私人数组元素
c。阵线()= 42;/ /修改私人int
返回0; }
潜在的缓解措施
实施阶段:
声明私有方法。 |
实施阶段:
克隆的成员数据和保持一个私有的数据对象的修改的版本。 |
实施阶段:
控制如何使用公共setter方法私有成员可以修改。 |
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
7有害的王国 |
|
|
私人波束场回来一个公共方法 |
软件故障模式 |
SFP23 |
|
公开的数据 |
引用
|