...
The Java language system weakens the accessibility of private members of an outer class when a nested inner class is present, which can result in an information leak.
Rule | Severity | Likelihood |
|---|
Detectable | Repairable | Priority | Level |
|---|---|---|---|
OBJ08-J | Medium | Probable | No |
No |
P4 |
L3 |
Automated Detection
Automated detection of nonprivate inner classes that define nonprivate members and constructors that leak private data from the outer class is straightforward.
| Tool | Version | Checker | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| CodeSonar |
| JAVA.CLASS.ICSBS | Inner class should be static | ||||||
| Parasoft Jtest |
| CERT.OBJ08.INNER | Make all member classes "private" |
Related Guidelines
Bibliography
[JLS 2015] | §8.1.3, Inner Classes and Enclosing Instances |
Section 2.3, "Inner Classes" | |
Securing Java: Getting Down to Business with Mobile Code |
...
...