结构: Simple
Abstraction: Variant
状态: Incomplete
被利用可能性: Medium
Java packages are not inherently closed; therefore, relying on them for code security is not a good practice.
The purpose of package scope is to prevent accidental access by other parts of a program. This is an ease-of-software-development feature but not a security feature.
Language: {'cwe_Name': 'Java', 'cwe_Prevalence': 'Undetermined'}
范围 | 影响 | 注释 |
---|---|---|
Confidentiality | Read Application Data | Any data in a Java package can be accessed outside of the Java framework if the package is distributed. |
Integrity | Modify Application Data | The data in a Java class can be modified by anyone outside of the Java framework if the packages is distributed. |
策略:
Data should be private static and final whenever possible. This will assure that your code is protected by instantiating early, preventing access and tampering.
The following example demonstrates the weakness.
bad Java
映射的分类名 | ImNode ID | Fit | Mapped Node Name |
---|---|---|---|
CLASP | Relying on package-level scope | ||
The CERT Oracle Secure Coding Standard for Java (2011) | MET04-J | Do not increase the accessibility of overridden or hidden methods |