Abo
  • Services:
Anzeige
Von einer solchen Fehlermeldung wurde unser Autor kürzlich überrascht.
Von einer solchen Fehlermeldung wurde unser Autor kürzlich überrascht. (Bild: Screenshot Hanno Böck)

PHP macht es dem Nutzer zu einfach, Fehler zu machen

Es hätte mehrere Möglichkeiten gegeben, diese Sicherheitslücke zu verhindern. Um künftig Ähnliches zu vermeiden, ist die Display-Errors-Option standardmäßig deaktiviert. Die Exceptions von PDO werden nun korrekt behandelt. Zudem ist ein generischer Exception-Handler aktiv, der bei allen unbekannten Exceptions aufgerufen wird.

Anzeige

Ich will nicht alle Schuld von mir weisen, aber ich denke, dass PHP es Nutzern hier zu einfach macht, derartig gravierende Fehler zu begehen. Idealerweise sollten Tools und Programmiersprachen, wann immer es möglich ist, automatisch die sichere Option bevorzugen.

Wieso ist Display-Errors standardmäßig aktiv?

In diesem Fall führt aber die einfachste Verwendung von PDO - ohne Exception-Handling und mit der Standardeinstellung für display_errors - zu einer sehr kritischen Sicherheitslücke.

Da von der Nutzung von display_errors in Produktivsystemen abgeraten wird, ist es kaum verständlich, warum die Option trotzdem standardmäßig aktiv ist. In Sachen Exceptions wäre es wünschenswert, wenn es eine Möglichkeit gäbe, bestimmte Exceptions so zu markieren, dass sie in jedem Fall behandelt werden müssen.

  • Und auf einmal war das Passwort auf der Webseite zu lesen. (Screenshot: Hanno Böck)
  • Die Warnung in der PHP-Doku zu display_errors ist angesichts des<br>Risikos nicht sehr deutlich. (Screenshot: Hanno Böck)
  • Auf die Risiken von fehlendem Exception-Handling in PDO hingegen wird deutlich hingewiesen. (Screenshot: Hanno Böck)
Die Warnung in der PHP-Doku zu display_errors ist angesichts des<br>Risikos nicht sehr deutlich. (Screenshot: Hanno Böck)

So könnte eine Funktion bereits die Ausführung verweigern, wenn sie nicht innerhalb eines passenden try/except-Blocks ausgeführt wird. Außerdem ist es fragwürdig, dass Stack Traces generell bei nicht behandelten Exceptions ausgegeben werden. Man könnte diese auch zu einer Extra-Option machen oder zumindest die Funktionsparameter verbergen.

Der Vorfall zeigt, dass selbst die ausgefeiltesten Sicherheitsmechanismen nicht immer schützen können. Keiner der genutzten Sicherheitsmechanismen hat versagt. HTTPS schützt sehr zuverlässig vor manipulierten Daten und - mit gewissen Einschränkungen - vor mitlesenden Lauschern. Richtig verwendet verhindert Content Security Policy alle Cross-Site-Scripting-Lücken. Und Prepared Statements sind ein effektiver Schutz gegen SQL-Injections. Viele mögliche Sicherheitslücken sind damit abgedeckt - aber eben nicht alle.

 Wie konnte das nur passieren?

eye home zur Startseite
Astorek 15. Apr 2017

Gibt ja eine Website, die versucht, die bekanntesten Static Website Generatoren zu...

Themenstart

Noppen 15. Apr 2017

Mir ist letztens das Essen angebrannt. Ich würde sagen, dass die eigene Küche...

Themenstart

VigarLunaris 15. Apr 2017

Was soll ich da sagen... config.py enthält die variablen Darin liegen Brent-Hashing PWs...

Themenstart

.:Tim:. 15. Apr 2017

Naja, an das selbstverständlichste auf Produktivsystemen hat er nicht gedacht...

Themenstart

gadthrawn 14. Apr 2017

Es mag nur ein Schalter sein, aber intern wird mit einfachen Schaltern eben viel mehr...

Themenstart

Kommentieren



Anzeige

Stellenmarkt
  1. Ratbacher GmbH, Hamburg
  2. STAHLGRUBER GmbH, Poing, Raum München
  3. Haufe Gruppe, Freiburg im Breisgau
  4. FILIADATA GmbH, Karlsruhe


Anzeige
Top-Angebote
  1. (u. a. Makita Bohrhammer HR2470 94,90€, Makita Akku-Bohrschrauber uvm.)
  2. (u. a. HP 15,6 Zoll 299,00€, Lenovo Ideapad 15,6 Zoll 499,00€, Acer 17,3 Zoll 499,00€)
  3. 44,90€ statt 79,90€

Folgen Sie uns
       


  1. Hasskommentare

    Bundesrat fordert zahlreiche Änderungen an Maas-Gesetz

  2. GVFS

    Windows-Team nutzt fast vollständig Git

  3. Netzneutralität

    Verbraucherschützer wollen Verbot von Stream On der Telekom

  4. Wahlprogramm

    SPD fordert Anzeigepflicht für "relevante Inhalte" im Netz

  5. Funkfrequenzen

    Bundesnetzagentur und Alibaba wollen Produkte sperren

  6. Elektromobilität

    Qualcomm lädt E-Autos während der Fahrt auf

  7. Microsoft

    Mixer soll schneller streamen als Youtube Gaming und Twitch

  8. Linux

    Kritische Sicherheitslücke in Samba gefunden

  9. Auftragsfertiger

    Samsung erweitert Roadmap bis 4 nm plus EUV

  10. Fake News

    Ägypten blockiert 21 Internetmedien



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Tado im Langzeittest: Am Ende der Heizperiode
Tado im Langzeittest
Am Ende der Heizperiode
  1. Speedport Smart Telekom bringt Smart-Home-Funktionen auf den Speedport
  2. Tapdo Das Smart Home mit Fingerabdrücken steuern
  3. Mehr Möbel als Gadget Eine Holzfernbedienung für das Smart Home

Blackberry Keyone im Test: Tolles Tastatur-Smartphone hat zu kurze Akkulaufzeit
Blackberry Keyone im Test
Tolles Tastatur-Smartphone hat zu kurze Akkulaufzeit
  1. Blackberry Keyone kommt Mitte Mai
  2. Keyone Blackberrys neues Tastatur-Smartphone kommt später
  3. Blackberry Keyone im Hands on Android-Smartphone mit toller Hardware-Tastatur

The Surge im Test: Frust und Feiern in der Zukunft
The Surge im Test
Frust und Feiern in der Zukunft
  1. Computerspiele und Psyche Wie Computerspieler zu Süchtigen erklärt werden sollen
  2. Wirtschaftssimulation Pizza Connection 3 wird gebacken
  3. Mobile-Games-Auslese Untote Rundfahrt und mobiles Seemannsgarn

  1. Re: GVFS etwas ungünstiger Name...

    körner | 15:07

  2. Re: "Es gebe dazu keine weitere Kommunikation...

    fg (Golem.de) | 15:07

  3. Re: Warum überhaupt VLC nutzen

    __destruct() | 15:07

  4. Re: Die hohen Anschaffungskosten eines E-Autos...

    Carlo Escobar | 15:07

  5. Re: Unix, das Betriebssystem von Entwicklern, für...

    SelfEsteem | 15:05


  1. 15:15

  2. 13:35

  3. 13:17

  4. 13:05

  5. 12:30

  6. 12:01

  7. 12:00

  8. 11:58


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel