Mailinglisten-Archive |
Tobias Ratschiller schrieb:
>
> > In dem Zusammenhang stellt sich mir die Frage, wie ich sicher erfahre,
> > ob eine globale Variable aus einem Cookie stammt oder aus einer normalen
> > Get-Variablen. Mit $HTTP_COOKIE_VARS wäre das überprüfbar, aber mach mal
> > folgendes
> >
> > www.domain.tld?$HTTP_COOKIE_VARS=nix
> > und wech ist das Cookie-Array.
>
> Das führte in irgendeiner Version zum Absturz, wenn ich mich recht erinnere.
> Das ist ein Bug. Diese Arrays sollten auch nicht von außen überschreibbar
> sein, falls sie das sind, ist es ein Bug. Ändert aber nichts an der
> Sinnhaftigkeit von $HTTP_[COOKIE|GET|POST|SERVER|STATE]_VARS,
> variables_order, und register_globals (ok, über letzteres läßt sich
> streiten).
Es war in der Mail das "$" zuviel.
www.domain.tld?HTTP_COOKIE_VARS=nix
überschreibt mit tödlicher Sicherheit das Array.
1. "normal":
http://test/_sessiontest/httpcookievars.php
<?php
SetCookie("testcookie", "identifier", 0);
reset($HTTP_COOKIE_VARS);
while (list ( $k,$v)=each ($HTTP_COOKIE_VARS))
{echo "<br>$k = $v";}
Cookie wird gesetzt. Ergebnis:
testcookie = identifier
2. "Hack-Version":
http://test/_sessiontest/httpcookievars.php?HTTP_COOKIE_VARS=nix
Cookie wird gesetzt. Ergebnis:
Warning: Variable passed to reset() is not an array or object in
d:\www\test\_sessiontest\httpcookievars.php on line 4
Warning: Variable passed to each() is not an array or object in
d:\www\test\_sessiontest\httpcookievars.php on line 5
Wat nu? Bug reporten?
mit freundlichen Grüßen,
oK.
php::bar PHP Wiki - Listenarchive