Apache si vymysli cookie?

Jan Kasprzak kas na fi.muni.cz
Pondělí Červenec 2 19:07:29 CEST 2007


Jan Kasprzak wrote:
: delam nejakou vec ktera by mela pouzivat cookies pro udrzovani staovych
: informaci.
[...]
: Po nekolika kliknutich nebo reloadech se ale stane, ze $jar->cookies()
: zacne vracet, ze je nastavena cookie (i kdyz tcpdumpem jsem overil,
: ze browser zadnou neposila ani nejde o nejake prezivsi TCP spojeni:
: proste nove spojeni bez HTTP hlavicky Cookie: ze strany klienta,
: a presto se v $jar->cookies() najde nejaky zaznam.

	Testoval jsem jeste vic, a vypada to, ze kdyz tentyz potomek
Apache drive nekomu poslal cookie, tak uz $jar->cookies() tu cookie
obsahuje naporad i v dalsich requestech.

	Cist cookie jsem zkousel ruznymi metodami - pres
Apache2::Cookie::Jar->new(), dale pres fetch CGI::Cookie nebo pres
parse CGI::Cookie($ENV{HTTP_COOKIE}). Chova se to stejne.

	Mam PerlOptions +GlobalRequest (musim mit, nezkousel jsem jestli
by vypnuti pomohlo), a odchozi cookie vyrabim pres

        my $cookie_out = Apache2::Cookie->new($r,
                -name      => $COOKIE_NAME,
                -value     => $session,
                -expires   => '+' . $COOKIE_EXPIRACE . 'd',
                -path      => '/',
        );
        $cookie_out->bake($r);

	Vyrabet odchozi cookie jsem krome vyse uvedeneho zpusobu zkousel
pres $r->headers_out->set('Set-Cookie' => CGI::Cookie->new(...)),
a taky se to chova stejne.

	Zkousel jsem Apache 2.2 i 2.0, zkousel jsem handler z PerlFixupHandler
presunout do PerlResponseHandler, a nic z toho nepomohlo. Proste jak nejaky
klient zpusobi ze je mu odeslana cookie, tak ten stejny potomek Apache uz
tu cookie vidi jako prichozi i v dalsich requestech ktere zpracovava.

	Muzu samozrejme v okamziku kdy posilam ven tu novou cookie
udelat $r->child_terminate, ale prijde mi to jako zbabelost :-)

-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/    Journal: http://www.fi.muni.cz/~kas/blog/ |
> what I'm trying to do here is to wake people up who seem to be living in <
> some dream-world where Sun wants to help people.        --Linus Torvalds <


Další informace o konferenci Perl