O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

7 Sessions178
7.5 Session-Timeout
Sessions, die nicht nach einer bestimmten Zeit vom Server gelöschte
werden, erlauben Angreifern beliebig lange Brute-Force-Attacken auf
identifizierte Benutzer in Applikationen.
Brute-Force-Attacken auf
Session-IDs
Häufig werden auch »Auf diesem Computer eingeloggt bleiben«-
Optionen entwickelt, die einerseits Benutzern erlauben, eine
bestimmte Zeit in einer Applikation eingeloggt zu bleiben; andererseits
eröffnen diese Optionen Angreifern die Möglichkeit, für diese Zeit des
»Eingeloggt bleiben« beliebige Attacken wie Brute-Force-Angriffe
oder Erraten von Session-IDs durchzuführen. Diese Optionen werden
mit Cookies auf dem Client realisiert, die eine bestimmte Lebensdauer
haben. Hat ein Angreifer erfolgreich eine Session-ID erraten, kann er
sich ein identisches Cookie erstellen und ist bei Aufruf der Applikation
automatisch in dieser eingeloggt.
Das Vorhandensein einer solchen Option – oft bei Webforen zu
finden – kann ein Indiz dafür sein, dass diese Applikation auf diese Art
angreifbar ist. Gibt es einen solchen Mechanismus nicht, kann ein
JavaScript-Refresh in einer Seite auf einen lückenhaften Session-
Mechanismus hindeuten. Dieser wird dazu genutzt, die Gültigkeit der
Session durch einen erneuten Request zu erhalten. Ebenso sind zu
lange eingestellte Session-Timeouts in der Konfiguration von PHP eine
potenzielle Schwachstelle.
Gültigkeitsdauer von
Sessions
Die Gültigkeit von Sessions kann man durch die Einstellung
session.gc_maxlifetime
ändern. Hier kann eine Einstellung in Sekunden festgelegt werden, um
zu bestimmen, ab wann eine Session als »Abfall« angesehen wird und
durch die eingebauten Mechanismen von PHP gelöscht wird.
Eine Session sollte für hoch sensitive Anwendungen nicht länger als
fünf Minuten gültig sein – etwa bei Anwendungen, die persönliche Daten
der Anwender verarbeiten. Maßnahmen, um die Lebensdauer einer Ses-
sion zu verlängern, sollten Sie bei solchen Anwendungen nicht imple-
mentieren – weder eine »Automatisch anmelden«-Option noch auto-
matisierte Seitenabrufe per JavaScript, um die Session gültig zu halten.
Bei »normalen« Anwendungen, also Foren, Blogs oder ähnlichen
webbasierten Systemen, ist eine Session-Lebensdauer von 20 Minuten
vertretbar – oft werden auch 60 Minuten verwendet. Eine Option, mit
der der Anwender über ein Cookie dauerhaft eingeloggt bleiben kann,
+5BG5>45>(95 59>5<1>75(5CC9?>E>459>5>C9385B5><7?B9D8=ECJEB
BCD5<<E>7

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required