PHP Cookies – Praxisszenarien
Cookies manipulieren
Du aenderst, loeschst und verwaltest bestehende Cookies
Security Flags
Du setzt httponly, secure und SameSite Optionen
Cookie-Sicherheit
Du verstehst Sicherheitsrisiken und wie man sie vermeidet
Diese Aufgaben bauen auf den Grundlagen (Übungsblatt 1) auf und zeigen, wie Cookies in realen Szenarien eingesetzt werden. Erstelle für jede Aufgabe eine eigene .php-Datei in htdocs/ und öffne sie über http://localhost/.
Erstelle eine Datei alle_cookies.php, die alle aktuell gesetzten Cookies des Browsers in einer HTML-Tabelle ausgibt.
htmlspecialchars() gesichert werden.$_COOKIE enthält alle Cookies als Schlüssel-Wert-Paare. Mit foreach ($array as $key => $value) kannst du es durchlaufen.
Erstelle eine Datei farbschema.php, die die Farbschema-Präferenz des Benutzers in einem Cookie speichert.
<select>-Feld: Optionen hell und dunkel.farbschema für 30 Tage gespeichert.hell → weißer Hintergrund, dunkel → dunkler Hintergrund (#1e293b, helle Schrift).<select>-Feld soll die aktuell gespeicherte Option vorauswählen.hell oder dunkel ist, bevor du ihn im Cookie speicherst. Nutze dafür in_array(). Nur validierte Werte dürfen gespeichert werden!
Nach setcookie() ist der neue Wert in $_COOKIE noch nicht sichtbar – er gilt erst beim nächsten Request. Durch das manuelle Setzen von $_COOKIE['farbschema'] = $wahl wird er sofort auf der aktuellen Seite wirksam.
Simuliere ein einfaches Login-System mit zwei Dateien: login.php und dashboard.php.
admin / geheim → Login erfolgreich.eingeloggt mit Wert 1 setzen (1 Stunde Gültigkeit), danach Weiterleitung zu dashboard.php via header("Location: ...").eingeloggt gesetzt und gleich 1 ist.login.php.logout.php auf, das den Cookie löscht und zurück zu login.php leitet.password_hash()). Hier geht es nur darum, die Cookie-Mechanik zu verstehen.
login.php
dashboard.php
logout.php
Erstelle eine Datei warenkorb.php, die einen einfachen Warenkorb über einen Cookie verwaltet.
Apfel, Banane, Kirsche.warenkorb gespeichert (Gültigkeit: 1 Tag).json_encode($array) → Array in JSON-String umwandeln (zum Speichern)json_decode($string, true) → JSON-String zurück in Array (zum Lesen)in_array() gegen die erlaubten Produkte!Die vollständige Signatur von setcookie() bietet wichtige Sicherheits- und Gültigkeitsoptionen. Verwende in dieser Aufgabe die Array-Schreibweise:
Beantworte folgende Fragen und implementiere die Lösung:
sicher.php, die einen Cookie token mit einem zufälligen Wert (bin2hex(random_bytes(16))) setzt – mit httponly: true und path: '/'.document.cookie.httponly
JavaScript kann den Cookie nicht lesen → schützt vor XSS-Angriffen.
secure
Cookie wird nur über verschlüsselte HTTPS-Verbindungen übertragen.
samesite
Lax oder Strict verhindert, dass Cookies bei Cross-Site-Requests mitgesendet werden → CSRF-Schutz.
In echten Webanwendungen (Session-Cookies, Auth-Tokens) sollten httponly und samesite immer gesetzt sein. secure wird auf dem Live-Server zusätzlich aktiviert, sobald HTTPS verfügbar ist.
Dynamische Webseiten 2 | eduhigh.net | Seminarunterlagen