CWE ID: 89
Name: Improper Neutralization of Special Elements used in an SQL Command (‘SQL Injection’)
Das Produkt konstruiert entweder den gesamten oder Teile eines SQL-Befehls unter Verwendung von extern beeinflusstem Input von einer vorgelagerten Komponente. Es neutralisiert jedoch entweder gar nicht oder fehlerhaft spezielle Elemente, die den beabsichtigten SQL-Befehl modifizieren könnten, wenn er an eine nachgelagerte Komponente gesendet wird. Ohne ausreichende Entfernung oder Quoting von SQL-Syntax in benutzerkontrollierten Inputs kann die generierte SQL-Query dazu führen, dass diese Inputs als SQL und nicht als gewöhnliche User Data interpretiert werden.
Effektivität: Unknown
Beschreibung: Bei allen Sicherheitsprüfungen, die clientseitig durchgeführt werden, ist sicherzustellen, dass diese Prüfungen auch serverseitig dupliziert werden. Dies dient der Vermeidung von CWE-602. Angreifer können clientseitige Prüfungen umgehen, indem sie Werte nach Durchführung der Prüfungen modifizieren oder den Client so verändern, dass die clientseitigen Checks vollständig entfernt werden. Anschließend würden diese modifizierten Werte an den Server übermittelt.
Effektivität: Unknown
Beschreibung: Wenn der Satz akzeptabler Objekte, beispielsweise Dateinamen oder URLs, begrenzt oder bekannt ist, sollte eine Zuordnung von einem Satz fester Eingabewerte (z. B. numerische IDs) zu den tatsächlichen Dateinamen oder URLs erstellt werden. Alle anderen Inputs sind abzulehnen.
Effektivität: Moderate
Beschreibung: Der Einsatz einer Application Firewall, die Angriffe gegen diese Schwachstelle erkennen kann, ist ratsam. Dies kann vorteilhaft sein, wenn der Code nicht behoben werden kann (weil er von einem Drittanbieter kontrolliert wird), als Sofortmaßnahme, während umfassendere Software Assurance Maßnahmen implementiert werden, oder zur Bereitstellung einer Defense in Depth.
Notizen: Eine Application Firewall deckt möglicherweise nicht alle möglichen Input-Vektoren ab. Darüber hinaus existieren Angriffstechniken, die es ermöglichen, den Schutzmechanismus zu umgehen, beispielsweise durch die Verwendung von fehlerhaften Inputs, die dennoch von der empfangenden Komponente verarbeitet werden können. Je nach Funktionalität kann eine Application Firewall unbeabsichtigt legitime Requests ablehnen oder modifizieren. Schließlich kann ein gewisser manueller Aufwand für die Customization erforderlich sein.
Effektivität: Unknown
Beschreibung: Bei der Verwendung von PHP sollte die Anwendung so konfiguriert werden, dass register_globals
nicht verwendet wird. Während der Implementierung sollte die Anwendung so entwickelt werden, dass sie sich nicht auf diese Feature-Funktionalität stützt. Seien Sie jedoch vorsichtig bei der Implementierung einer register_globals
-Emulation, die anfällig für Schwachstellen wie CWE-95, CWE-621 und ähnlichen Problemen sein kann.