Cookies Und Session Flashcards
Frage
Antwort
Was ist die PHP-Funktion setcookie()?
Die PHP-Funktion setcookie() wird verwendet, um Cookies auf dem Client zu setzen.
Welche Parameter hat die setcookie()-Funktion?
setcookie() nimmt die Parameter Name, Wert, Verfallsdatum, Pfad, Domain, Verbindungstyp und httponly entgegen.
Welcher Parameter ist bei setcookie() zwingend erforderlich?
Der Name des Cookies ist der einzige Pflicht-Parameter.
Was bedeutet das Verfallsdatum eines Cookies?
Das Verfallsdatum gibt an, wann das Cookie ungültig wird. Es wird als Unix-Timestamp angegeben und oft als aktuelles Datum plus eine gewünschte Anzahl an Sekunden gesetzt.
Welche Bedeutung hat der Pfad-Parameter bei setcookie()?
Der Pfad bestimmt, für welche Teile der Domain das Cookie gültig ist. ‘/’ bedeutet, dass es für die gesamte Domain gilt.
Wann wird der Domain-Parameter bei setcookie() benötigt?
Der Domain-Parameter ist nur relevant, wenn das Cookie für Subdomains zugänglich sein soll.
Was bedeutet der true-Wert beim Verbindungstyp-Parameter in setcookie()?
Ein true-Wert bedeutet, dass das Cookie nur über eine sichere HTTPS-Verbindung ausgelesen werden kann.
Was bewirkt der httponly-Parameter bei setcookie()?
Wenn httponly auf true gesetzt ist, kann das Cookie nur über das HTTP-Protokoll ausgelesen werden und nicht über JavaScript (Schutz vor XSS-Angriffen).
Ab welcher PHP-Version ist der httponly-Parameter verfügbar?
Der httponly-Parameter ist ab PHP 5.2 verfügbar.
Warum sind Cookies sicherheitskritisch?
Cookies können sensible Daten enthalten. Ohne Schutzmaßnahmen wie httponly oder Secure-Flag könnten sie durch XSS oder MITM-Angriffe ausgelesen oder manipuliert werden.
Wie kann PHP selbst gesetzte Cookies auslesen?
PHP kann Cookies über die superglobale Variable $_COOKIE auslesen.
Wie ist die Struktur der $_COOKIE-Variable?
Die $_COOKIE-Variable ist ein assoziatives Array, das die Cookies als Key-Value-Paare enthält.
Wie kann ein einzelnes Cookie ausgelesen werden?
Mit echo $_COOKIE[‘Cookie-Name’]; kann der Wert eines Cookies ausgegeben werden.
Wie setzt man ein Cookie in PHP?
Mit setcookie(‘Geschmack’, ‘Chocolate-Chip’); wird ein Cookie mit dem Namen ‘Geschmack’ und dem Wert ‘Chocolate-Chip’ gesetzt.
Wie kann man alle Cookies auslesen?
Mit einer foreach-Schleife: foreach ($_COOKIE as $key => $value) { echo ‘$key = $value’; }
Warum sollte man prüfen, ob ein Cookie gesetzt ist, bevor man es ausliest?
Wenn das Cookie nicht existiert, führt der direkte Zugriff auf $_COOKIE[‘name’] zu einer Warnung. Die Funktion isset() sollte vorher geprüft werden.
Wie kann man sicherstellen, dass Cookies nach dem Setzen sofort verfügbar sind?
Cookies sind erst in der nächsten Anfrage verfügbar. Man kann alternativ in der gleichen Sitzung eine Session-Variable setzen.
Wie kann PHP verhindern, dass ein Cookie von JavaScript ausgelesen wird?
Mit dem httponly-Parameter in setcookie(), z. B. setcookie(‘name’, ‘wert’, time()+3600, ‘/’, ‘’, false, true);
Wie kann PHP prüfen, ob ein bestimmtes Cookie existiert?
Mit isset($_COOKIE[‘name’]); kann überprüft werden, ob ein Cookie gesetzt ist.
Welche Sicherheitsrisiken bestehen beim Umgang mit Cookies?
Cookies können durch XSS gestohlen oder durch Man-in-the-Middle-Angriffe manipuliert werden. Sicheres Setzen mit Secure- und HttpOnly-Flags ist wichtig.
Was sind Sessions in PHP?
Sessions sind eine Methode, um Zustände (Session-Daten) serverseitig zu speichern.
Wo werden Sessions gespeichert?
Sessions werden auf dem Server gespeichert, im Gegensatz zu Cookies, die im Browser des Clients gespeichert werden.
Wofür wird ein Cookie bei Sessions genutzt?
Das Cookie dient nur zur Identifikation des Clients, speichert aber keine eigentlichen Sitzungsdaten.
Wie lange bleiben Sessions normalerweise bestehen?
Sessions bleiben in der Regel bis zum Ende der Browser-Sitzung bestehen, es sei denn, sie werden manuell beendet oder eine andere Konfiguration ist gesetzt.
Wie startet man eine Session in PHP?
Mit session_start(); wird eine neue Session gestartet oder eine bestehende fortgesetzt.
Welche globale Variable wird für Session-Daten in PHP verwendet?
Die superglobale Variable $_SESSION wird verwendet, um Session-Daten zu speichern und abzurufen.
Was passiert, wenn der Browser geschlossen wird?
Standardmäßig wird die Session beim Schließen des Browsers beendet, es sei denn, sie wird manuell oder über eine Konfiguration verlängert.
Warum sind Sessions sicherer als Cookies für das Speichern sensibler Daten?
Sessions speichern die Daten serverseitig, während Cookies im Client-Browser gespeichert werden und somit anfälliger für Manipulationen sind.
Wie kann man eine bestimmte Session-Variable setzen?
Mit $_SESSION[‘key’] = ‘wert’; wird eine Session-Variable gesetzt.
Wie kann man eine Session beenden?
Mit session_destroy(); wird die aktuelle Session gelöscht.
Warum sollten PHP-Skripte die Inhalte von Cookies überprüfen?
Cookies können im Client manipuliert werden, daher müssen PHP-Skripte die Werte vor der Verarbeitung validieren.
Wie funktionieren Sessions, wenn Cookies deaktiviert sind?
Sessions werden dann über die URL als Session-Name übergeben, was jedoch ein Sicherheitsrisiko darstellen kann.
Was ist Session Fixation?
Ein Angriff, bei dem ein Angreifer einem Benutzer eine vorher festgelegte Session-ID unterschiebt, um sich nach der Anmeldung Zugriff auf dessen Sitzung zu verschaffen.
Wie läuft eine Session Fixation-Attacke ab?
- Angreifer generiert eine Session-ID. 2. Opfer klickt auf einen manipulierten Link mit dieser ID. 3. Opfer meldet sich an. 4. Angreifer kann die Sitzung übernehmen, da die ID bereits bekannt ist.
Wie kann man sich gegen Session Fixation schützen?
Man sollte beim Login eine neue Session-ID generieren, z. B. mit session_regenerate_id(true);
Welche Gefahr besteht, wenn Session-IDs in der URL übergeben werden?
Sie können von Dritten mitgelesen oder in Logs gespeichert werden, was das Risiko von Session Hijacking erhöht.
Warum ist HTTPS wichtig für Sitzungen?
HTTPS schützt die Übertragung der Session-ID vor Man-in-the-Middle-Angriffen, die ansonsten abgefangen werden könnte.
Wie kann PHP verhindern, dass Session-IDs über die URL übergeben werden?
Durch Setzen von session.use_only_cookies = 1 in der php.ini, sodass nur Cookies für Sessions genutzt werden.