CWE ID: 375
Name: Returning a Mutable Object to an Untrusted Caller
Die Übergabe von nicht-geklonten, veränderlichen Daten als Rückgabewert kann dazu führen, dass diese Daten von der aufrufenden Funktion verändert oder gelöscht werden.
In Situationen, in denen Funktionen Referenzen auf veränderliche Daten zurückgeben, besteht die Möglichkeit, dass der externe Code, der die Funktion aufgerufen hat, Änderungen an den gesendeten Daten vornimmt. Wenn diese Daten zuvor nicht geklont wurden, verwendet die Klasse dann modifizierte Daten, was möglicherweise Annahmen über ihren internen State verletzt.
Effektivität: Unknown
Beschreibung: Deklarieren Sie zurückgegebene Daten, die nicht verändert werden sollen, als constant oder immutable.
Effektivität: Unknown
Beschreibung: Klonen Sie alle veränderlichen Daten, bevor Sie Referenzen darauf zurückgeben. Dies ist die bevorzugte Mitigation. Auf diese Weise bleibt eine gültige Kopie für die Verwendung durch die Klasse erhalten, unabhängig davon, welche Änderungen an den Daten vorgenommen werden.