Potablog 1338.at Header

 
Ab PHP Version 5.2 wurde die Funktion setcookie() erweitert um das Argument [, bool $httponly ]
Nun lautet die Funktion
Code
bool setcookie ( string $name [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly ]]]]]] )

httponly bewirkt, dass beim Senden des Cookies an den Browser ein httpOnly; mitgesendet wird, das bei neuen Browsern verhindert, dass das Cookie von Javascript oder anderen Clientseitigen Skriptsprachen gelesen wird.

Es funktionert derzeit bei folgenden Browsern:

Microsoft Internet Explorer 6 (SP1)+ Yes
Mozilla Firefox 2.0.0.6 Yes
Netscape Navigator 9.0b3 Yes
Opera 9.23 No
Opera 9.50 Yes
Safari 3.0 No
Google's Chrome Beta (initial public release) Yes
(Verhindert jeweils nur das lesen)

Mehr dazu hier, hier und hier.

Was macht man aber nun, wenn man eine PHP-Version vor 5.2 benutzt und sich nicht selbst eine setcookie() Funktion basteln will bzw. die Header manuell senden?

Ganz einfach: Man fügt an das die Variable $domain einfach
Code; httpOnly;

an.

Das sieht dann zb so aus
Codesetcookie("userid", $userid, (time() + 886400), "/", $_SERVER["SERVER_NAME"]."; httpOnly;", FALSE);


Der Browser erhällt dann folgenden Header

CodeSet-Cookie: userid=5; expires=Wed, 01-Oct-2008 04:20:40 GMT; path=/; domain=localhost; httpOnly;


Was exakt der Ausgabe von der setcookie() Funktion in PHP ab Version 5.2 entspricht.
Ein wenig Dirty aber es funktioniert :-)


Direktlink  Kommentare: 0 geschrieben von potassium am Sonntag, 21.09.2008, 00:07

Kommentar(e):
Es wurden noch keine (öffentlichen) Kommentare eingetragen.

Kommentar hinzufügen

Name*:
E-Mail-Adresse*: (Wird nicht veröffentlicht!)
WWW:


Text *:

HTML ist in den Kommentaren deaktiviert, alternativ können Sie aber (ausgewählte) bbCode-Befehle benutzen.

Privater Kommentar (Ist nur für den Autor des Eintrags lesbar.)
Benachrichtige mich, wenn es Antworten auf meinen Kommentar gibt.
Meine Eingaben merken.

Bitte geben Sie folgenden Antibot-Code ein:
Auth-Code
Antibot-Code*: