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...

Noppen 15. Apr 2017

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

VigarLunaris 15. Apr 2017

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

.:Tim:. 15. Apr 2017

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

gadthrawn 14. Apr 2017

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



Anzeige

Stellenmarkt
  1. über Nash direct GmbH, Stuttgart-Möhringen
  2. Deutsche Nationalbibliothek, Frankfurt am Main
  3. Fresenius Medical Care Deutschland GmbH, Bad Homburg
  4. HENRICHSEN AG, Stuttgart, Friedrichshafen, Freiburg


Anzeige
Blu-ray-Angebote
  1. (u. a. Drive 7,79€, John Wick: Kapitel 2 9,99€ und Predator Collection 17,49€)
  2. (u. a. Hobbit Trilogie Blu-ray 43,89€ und Batman Dark Knight Trilogy Blu-ray 17,99€)

Folgen Sie uns
       


  1. Autonomes Fahren

    Singapur kündigt fahrerlose Busse an

  2. Coinhive

    Kryptominingskript in Chat-Widget entdeckt

  3. Monster Hunter World angespielt

    Die Nahrungskettensimulation

  4. Rechtsunsicherheit bei Cookies

    EU warnt vor Verzögerung von ePrivacy-Verordnung

  5. Schleswig-Holstein

    Bundesland hat bereits 32 Prozent echte Glasfaserabdeckung

  6. Tesla Semi

    Teslas Truck gibt es ab 150.000 US-Dollar

  7. Mobilfunk

    Netzqualität in der Bahn weiter nicht ausreichend

  8. Bake in Space

    Bloß keine Krümel auf der ISS

  9. Sicherheitslücke

    Fortinet vergisst, Admin-Passwort zu prüfen

  10. Angry Birds

    Rovio verbucht Quartalsverlust nach Börsenstart



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Gaming-Smartphone im Test: Man muss kein Gamer sein, um das Razer Phone zu mögen
Gaming-Smartphone im Test
Man muss kein Gamer sein, um das Razer Phone zu mögen
  1. Razer Phone im Hands on Razers 120-Hertz-Smartphone für Gamer kostet 750 Euro
  2. Kiyo und Seiren X Razer bringt Ringlicht-Webcam für Streamer
  3. Razer-CEO Tan Gaming-Gerät für mobile Spiele soll noch dieses Jahr kommen

Firefox 57: Viel mehr als nur ein Quäntchen schneller
Firefox 57
Viel mehr als nur ein Quäntchen schneller
  1. Firefox Nightly Build 58 Firefox warnt künftig vor Webseiten mit Datenlecks
  2. Mozilla Wenn Experimente besser sind als Produkte
  3. Mozilla Firefox 56 macht Hintergrund-Tabs stumm

Fire TV (2017) im Test: Das Streaminggerät, das kaum einer braucht
Fire TV (2017) im Test
Das Streaminggerät, das kaum einer braucht
  1. Neuer Fire TV Amazons Streaming-Gerät bietet HDR für 80 Euro
  2. Streaming Update für Fire TV bringt Lupenfunktion
  3. Streaming Amazon will Fire TV und Echo Dot vereinen

  1. Re: Überleben durch Anzahlungen

    DAUVersteher | 02:51

  2. Re: 850 Fachverfahren

    Cok3.Zer0 | 02:31

  3. Re: Nicht jammern, sondern machen

    Cok3.Zer0 | 02:19

  4. Re: Wieder mit veraltetem Betriebssystem?

    Cok3.Zer0 | 02:07

  5. EU ist behindert!

    __destruct() | 01:47


  1. 17:56

  2. 15:50

  3. 15:32

  4. 14:52

  5. 14:43

  6. 12:50

  7. 12:35

  8. 12:00


  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