Ich lese gerade die CERT Secure Coding Standard for Java.Wie können Referenzen auf private Klassenmitglieder gefährlich sein
Ich kämpfe mit diesem rule. Der Schweregrad dieser Regel ist hoch, was bedeutet, dass ein Verstoß gegen diese Regel zu einer Eskalation oder Ausführung von Code führen kann.
Ich verstehe nicht wirklich, wie eine Verletzung dieser Regel zu solchen fatalen Dingen führen kann. Kann jemand ein Beispiel für einen Angriff auf einen Code geben, der gegen diese Regel verstößt?
Es gibt bereits Beispiele auf der Seite, mit der Sie verbunden sind. Was ist los mit denen? –
Wenn Sie den Verweis auf das private veränderbare Objekt, wie "Datum" oder irgendeine modifizierbare "Sammlung", verfügbar machen, können Sie den Zustand Ihres Objekts von außen ändern. Stellen Sie sich vor, Sie haben die Methode 'List getNames()', Sie können sie aufrufen und dann 'add (" name ")' aufrufen. Die Person, die Ihre Klasse verwendet, kann den internen Status der Instanz ändern. Siehe auch J. ** Blochs "Effective Java" 2. Ausgabe, Item 39, p. 184 ** –
nicht die Beispiele führen zu einer Code-Ausführung oder einer Privilegeskalation oder liege ich falsch? – Exagon