mod_perl: redirect viditelny zvenku
Honza Pazdziora
adelton na fi.muni.cz
Sobota Srpen 5 11:02:16 MEST 2006
On Fri, Aug 04, 2006 at 05:45:13PM +0200, Jan Kasprzak wrote:
>
> jak udelam v mod_perlu interni redirect nekam v ramci serveru tak,
> aby ta zmena URL byla viditelna i klientovi? Priklad:
>
> Mam na strance <a href="/login.pl">Prihlasit se</a>
> a chtel bych, aby v pripade uspesneho prihlaseni se uzivatel
> vratil na tu puvodni stranku. Kdyz ale zavolam $r->internal_redirect($prev),
> tak se sice vrati puvodni stranka, ale v prohlizeci nahore zustane
> http://muj.server.cz/login.pl. Jde to nejak zmenit, aniz bych se vzdal
> interniho redirectu?
Rekl bych, ze ne (bez ohledu na to, bavime-li se o mod_perlu nebo
ciste o HTTP). To co je v prohlizeci nahore je to, co tam napsal
uzivatel, co se tam dostalo kliknutim, JavaScriptem, nebo externim
redirectem. A tomu odpovida pak ta stranka, co je zobrazena
v prohlizeci (pod tim).
Kdyby slo to, co chces Ty, tak by bylo strasne snadne na URL
http://123.123.123.123/we_want_all_your_cc_numbers.html
vyrobit phishing stranku a pomoci Location: http://www.ebay.com/ tomu
dat legitimitu.
Proc nechces externi redirect?
> Zkusil jsem pred $r->internal_redirect
> volat $r->headers_out->set('Location' => $prev), ale nepomohlo to.
> Asi kdyz volam internal_redirect, tak se z puvodniho requestu neposilaji
> hlavicky.
No, predpokladam, ze vysledek toho interniho redirectu je 200. Takze
i pokud by ta Location hlavicka prezila (zkus HEAD -Se), tak se
nepouzije, protoze RFC 2616 rika
14.30 Location
The Location response-header field is used to redirect the
recipient to a location other than the Request-URI for
completion of the request or identification of a new resource.
For 201 (Created) responses, the Location is that of the new
resource which was created by the request. For 3xx responses,
the location SHOULD indicate the server's preferred URI for
automatic redirection to the resource.
O nejake semantice pro 200 se tu nehovori, a Location sama o sobe
redirect nevyvola.
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, C, Red Hat Network, IPv6, VoIP
Only self-confident people can be simple.
Další informace o konferenci Perl