PHP 4.3

9.6 Geltungsbereiche von Cookies

Cookies sind aus Sicherheitsgründen, wie Sie den ersten Seiten der Lerneinheit bereits entnehmen konnten, an Domains und (bei PHP ohne weitere Angaben) auch an Verzeichnisse gebunden. Sie haben die Möglichkeit, beim Aufruf von setcookie(), einige Parameter zu spezifizieren, die die Verarbeitung des Cookies durch den Webbrowser beeinflussen.

Domain

Beim Durchsuchen der Cookie-Liste vergleicht der Browser vor allem das Domain-Attribut des Cookies mit dem Server und der Domain, von der ein entsprechender Zugriff erfolgen soll. Dabei vergleicht der Browser die im Cookie gespeicherte Domain mit der Domain des Webservers von hinten nach vorn. Wäre der Domain-Parameter mit "cookies.com" definiert, würden die Domains "cookies.com", "parameter.cookies.com" und "domain.parameter.cookies.com" als gültig erkannt werden (also auf den Cookie zugreifen können), nicht jedoch "cookies.de". Da der hintere Teil des Domain-Namens übereinstimmen muss, wird dieses Verfahren im Englischen übrigens als "Tail-Matching"-Prinzip bezeichnet.

Verzeichnis

Dieses Attribut wird genutzt, um den Cookie auf ein bestimmtes Verzeichnis einzuschränken. Wenn die Zugehörigkeit eines Cookies zu einer Domain erkannt wurde, wird anschließend die Verzeichniszugehörigkeit geprüft. Dabei ist "/" die allgemeingültige Angabe, denn im Gegensatz zum Domain-Parameter vergleicht der Browser hier von vorn nach hinten. So würde die Angabe "/admin" sowohl für "/administration" als auch "/admin/rechte/" gelten.

Secure

Wenn ein Cookie als secure gesetzt wurde, wird er nur bei einer sicheren Verbindung mit HTTPS (HTTP und SSL) übertragen. Um diesen Status zu setzen, geben Sie als fünftes Argument der Funktion setcookie() die Zahl 1 an.
Wenn Sie kein fünftes Argument angeben, wird von PHP standardseitig 0, also nicht secure, gesetzt.
Die Übertragung des Cookies zwischen Server und Client kann dann auch bei unverschlüsselten Verbindungen stattfinden. Zu beachten ist hierbei, dass lediglich die Übertragung in verschlüsselter Form erfolgt. Auf der Festplatte des Client-Computers liegt nach wie vor ein unverschlüsselter, lesbarer Cookie vor.

Beispielskript Geltungsbereiche
<?php

  // setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
  setcookie("domain_cookie", "Ich bin ein ziemlich sicherer Cookie", time()+3600, "/userbase/", "domain.com", 1);

?>

Kommentare (0)

Ihr Kommentar

Name