• CWE-500: Public Static Field Not Marked Final

Ein Objekt enthält ein öffentliches, statisches Feld, das nicht als final deklariert ist. Dies könnte es ermöglichen, dass es auf unerwartete Weise modifiziert wird. Eine sorgfältige Prüfung der codebase und die Verwendung von final zur Sicherstellung der immutability von statischen Feldern ist entscheidend, um unbeabsichtigtes Verhalten und potenzielle security risks zu vermeiden.

CWE-500: Public Static Field Not Marked Final

CWE ID: 500
Name: Public Static Field Not Marked Final

Beschreibung

Ein Objekt enthält ein öffentliches, statisches Feld, das nicht als final deklariert ist. Dies könnte es ermöglichen, dass es auf unerwartete Weise modifiziert wird. Eine sorgfältige Prüfung der codebase und die Verwendung von final zur Sicherstellung der immutability von statischen Feldern ist entscheidend, um unbeabsichtigtes Verhalten und potenzielle security risks zu vermeiden.

Erweiterte Beschreibung

Öffentliche statische Variablen können von jeder Klasse in der Anwendung ohne Zugriffsmethode (Accessor) gelesen und ohne Modifikatormethode (Mutator) verändert werden. Dies stellt ein erhebliches security vulnerability dar, da es die Kontrolle über den Zustand der Anwendung untergräbt und die Möglichkeit unerlaubter Manipulationen eröffnet. Eine strikte Einhaltung von coding best practices, einschließlich der Verwendung von access modifiers wie private und protected, ist unerlässlich, um diese Risiken zu minimieren.

Risikominderungsmaßnahmen

Maßnahme (Architecture and Design)

Effektivität: Unknown
Beschreibung: Definieren Sie klar den Gültigkeitsbereich (Scope) für alle kritischen Datenelemente, einschließlich der Festlegung, ob sie als statisch betrachtet werden sollten. Eine sorgfältige scope definition ist essenziell für die Wahrung der data integrity und die Vermeidung unbeabsichtigter Seiteneffekte. Die Entscheidung, ob ein Datenelement als statisch deklariert wird, sollte auf einer gründlichen Analyse der Anforderungen und der potenziellen Auswirkungen auf die application architecture basieren. Eine unklare Definition kann zu schwerwiegenden security implications und data corruption führen.

Detaillierter Hintergrund

Wenn ein Feld als public deklariert wird, aber nicht als final, kann dieses Feld von beliebigem Java-Code gelesen und beschrieben werden. Dies birgt erhebliche Risiken hinsichtlich der data integrity und der code maintainability, da unbeabsichtigte Änderungen an dem Feld zu unerwartetem Verhalten und schwerwiegenden security vulnerabilities führen können. Eine sorgfältige Kontrolle über die Sichtbarkeit von Feldern ist ein wesentlicher Bestandteil guter software engineering practices.