cwe - 767:访问私有变量通过公共方法至关重要
描述
扩展描述
如果攻击者修改变量包含意想不到的价值,这可能违反假设从代码的其他部分。此外,如果攻击者可以读私有变量,它可能暴露敏感信息或更容易发动进一步攻击。
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
668年 |
曝光资源错误的球体 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关观点“软件开发”(cwe - 699)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
275年 |
权限的问题 |
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示范例子
示例1
下面的示例声明一个关键变量是私有的,然后允许变量被修改公共方法。
私人:浮动价格; 公众:void changePrice(浮动newPrice) {
价格= newPrice; }
示例2
下面的例子可以用来实现一个用户论坛,一个用户(UID)可以在多个概要文件之间切换(PID)。
公共类客户{
私人int UID; 公共int PID; 私人字符串的用户名; 公共端(字符串的用户名){
PID = getDefaultProfileID (); UID = mapUserNametoUID(用户名); 这一点。用户名=用户名; } 公共空间setPID (int ID) {
UID = ID; } }
程序员实现setPID修改PID变量的意图,但由于一个错字。意外的关键变量指定UID。如果程序允许将概要文件id在1到10之间,但1意味着用户的UID是视为一个管理员,然后用户可以获得管理权限的这个错误。
潜在的缓解措施
实施阶段:
适当地使用类accessor和mutator方法。接受数据时执行验证从公共方法,目的是修改一个至关重要的私有变量。也要确保适当的访问控制被应用在一个公共方法和关键数据的接口。 |
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
笔记
维护
这个条目是公共方法与访问控制密切相关。如果公共方法限制通过适当的访问控制,那么私有变量中的信息将不会接触到意想不到的聚会。可能会有链接或复合不当访问控制之间的关系,这一弱点。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
扣 |
|
|
未能保护存储的数据修改 |
软件故障模式 |
SFP23 |
|
公开的数据 |
SEI CERT Perl编码标准 |
OOP31-PL |
不精确的 |
不能访问私有变量或子程序在其他包吗 |
|