WordPress: Mehr Sicherheit bei Cookies

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
r23
Beiträge: 2718
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

WordPress: Mehr Sicherheit bei Cookies

Beitrag von r23 »

Hallo,

in den letzten Tagen werden immer mehr Berichte über geklaute Cookies bei WordPress veröffentlicht. Die einen sagen, 60% aller gehackten WordPress Installationen liegt an geklauten Cookies. Andere Sagen, dies ist per FALSCH.

Bei der ganzen Diskussion ist mir aufgefallen, dass man Cookies absichern kann. Hier meine Empfehlung:

Secure- und HttpOnly-Flags sind zusätzliche Sicherheitseinstellungen für Cookies, die helfen, die Sicherheit von Webanwendungen zu erhöhen:

- Secure-Flag: Dieses Flag gibt an, dass ein Cookie nur über eine sichere HTTPS-Verbindung gesendet werden darf. Es verhindert, dass das Cookie über eine ungesicherte HTTP-Verbindung gesendet wird, was es vor Man-in-the-Middle-Angriffen schützt.

- HttpOnly-Flag: Dieses Flag verhindert, dass Client-Skriptsprachen wie JavaScript auf das Cookie zugreifen können. Das erhöht die Sicherheit, indem es Cross-Site-Scripting (XSS)-Angriffe erschwert, bei denen Angreifer versuchen könnten, das Cookie zu stehlen oder zu manipulieren.

Diese Flags werden vom Server gesetzt, wenn er das Set-Cookie-Header in der HTTP-Antwort sendet, und moderne Browser unterstützen diese Attribute, um die Sicherheit zu verbessern.

Die Sicherheit von Cookies in PHP-Projekten kann an verschiedenen Stellen konfiguriert werden, und jede Methode hat ihre eigenen Vor- und Nachteile:

1. php.in: Die zentrale Konfiguration in der `php.ini`-Datei ist effektiv, weil sie serverweit gilt. Wenn du Einstellungen wie `session.cookie_httponly` und `session.cookie_secure` hier setzt, werden sie für alle Anwendungen auf dem Server übernommen. Das macht es einfacher, eine konsistente Konfiguration zu gewährleisten.

2. .htaccess: Die Verwendung von `.htaccess`-Dateien ist spezifisch für den Apache-Webserver. Sie ermöglicht es dir, die PHP-Einstellungen auf Verzeichnisebene zu überschreiben, was nützlich sein kann, wenn du nicht auf die `php.ini`-Datei zugreifen kannst oder wenn du unterschiedliche Einstellungen für verschiedene Teile deiner Website benötigst.

3. PHP-Skript: Die direkte Einstellung im PHP-Skript mit `ini_set()` gibt dir die größte Flexibilität, da du diese Einstellungen dynamisch basierend auf der Logik deines Skripts ändern kannst. Es ist jedoch wichtig zu beachten, dass einige Einstellungen, wie `session.cookie_secure`, möglicherweise nicht zur Laufzeit geändert werden können, da sie vor dem Start der Session festgelegt werden müssen.

Code: Alles auswählen

//setting basic configuration parameters
if (function_exists('ini_set')) {
    ini_set('session.cookie_httponly', true);
    ini_set('session.cookie_secure', true);
    ini_set('session.use_only_cookies', true);	
}
Im Allgemeinen ist es eine gute Praxis, Einstellungen so zentral wie möglich zu konfigurieren, um die Wartung zu vereinfachen und die Konsistenz zu gewährleisten. Die `php.ini`-Datei ist daher oft der bevorzugte Ort, gefolgt von der Verwendung von `.htaccess`, wenn du spezifische Anforderungen für verschiedene Verzeichnisse hast. Die direkte Konfiguration im PHP-Skript sollte mit Vorsicht verwendet werden und ist am besten für spezifische Fälle geeignet, in denen dynamische Einstellungen erforderlich sind.

Beste Grüße

Ralf
Antworten