... jak to vlastně dopadlo?
Zajímá mě, kde byl zakopaný pes.

Petr

2010/9/9 Oto Buchta <ta...@buchtovi.cz>

> 2010/9/9 Tomas Beranek <beranek.to...@gmail.com>:
> > diky za tipy a rady,
> > ale instancni promenna to taky nebude, vim jak se chova Action v Struts.
> > zadne takove promenne nepouzivam.
> >
> > je tam proste jen execute(...) metoda.
> >
> > zacinam cim dal vice podezrivat  ten firewall :-)
>
> Asi takto:
> něco někde není RequestSafe.
> Chyba se projevuje tak, že dva requesty s různým sessionID obsahují
> stejná data. Předpokládejme tedy na chvíli, že to má opravdu na
> svědomí firewall. Dovolím si předpokládat, že onen firewall není
> session-based-loadbalancer. Co by to tedy znamenalo?
>
> a) změní se sessionID
> Session (ať už je to HttpSession jiný druh mapy používající sessionID)
>  přiřazuje k požadavku příjemce, tedy servletový kontejner či jiná
> aplikace v servletovém kontejneru běžící. sessionID je přiřazeno vždy
> na základě příchozích paketů. Tyto pakety obsahují aplikační data (v
> daném případě data HTTP) a síťové hlavičky. Kdyby se sessionID
> přiazovalo pouze na základě síťových hlaviček, tak by buď všechny
> požadavky jdoucí ze stejné zaNATované sítě získávaly stejné sessionID
> (při identifikaci podle MAC adresy, IP adresy či jiného určení
> konkrétního počítače) a nebo by nebylo zaručeno, že stejný uživatel
> bude mít stále stejné sessionID (při identifikaci podle portu). Když
> si tedy řekneme, že nám čisté síťování nestačí, musí se použít něco,
> co je v datech.
>
> Aby došlo na straně přiřazení k záměně session ID, které je
> vyhodnocováno i na základě dat, musel by ten, kdo sessionID zamění,
> vědět, kde se PŘESNĚ (protože se nenahradila jen tak nějaká data, al
> pouze ta pro sessionID) nachází data definující sessionID, a to v obou
> požadavcích. To by znamenalo, že dané RequestUnsafe něco musí rozumět
> minimálně komunikačnímu protokolu (pokud je sessionID v URL) nebo
> přímo datům (cookies či POSTové proměnné) , pokud se jedná o něco v
> datech. Z toho plyne, že tu máme co do činění s RequestUnsafe proxy či
> transparent proxy v prvním případě, v druhém by navíc musela kompletně
> parsovat data a navíc s nimi pracovat velmi zvláštním způsobem.
>
> b) změní se data
> předpokládejme, sessionID je tedy správné. Potom musí něco přepsat
> přesně tu část dat, která odpovídá datům zaměněným. Opět tu máme něco,
> co rozumí datům a buď úmyslně či díky zvláštnímu a chybnému parsování
> nahradí v požadavku právě přesně těmi daty z jiného požadavku
>
> Musím se přiznat, že nevěřím, že by toto dělal firewall.
>
> Proto spíš vidím problém na straně aplikace, která datům rozumí a díky
> drobné nepozornosti mezi židlí a klávesnicí způsobí, že se data
> navzájem přeplácnou. Protože jde podle mého hloupého názoru opravdu o
> přeplácnutí dat, nikoli o záměnu sessionID
>
> --
> Oto 'tapik' Buchta, ta...@buchtovi.cz, http://tapikuv.blogspot.com
>

Odpovedet emailem