Dziś jest poniedziałek, 13 października 2008 roku (z kalendarza...)

Dyskusja o ciastkach

Icon

27.03.2006, 07:56

Webmaster

Komentarze (7)

Powrót

Dyskutowałem wczoraj z eXtremem nad przekazywaniem ID sesji między podstronami w OPB. Okazało się, że nie mamy aktualnie żadnej alternatywy dla osób, które z jakichś przyczyn muszą mieć wyłączone ciastka. Oczywistym jest, iż trzeba je jakoś emulować, lecz tu pojawia się problem detekcji, czy są one włączone. Nie wiem, czy przeglądarka takie informacje przesyła, a jeśli nawet, mogłoby zajść podejrzenie, że są one sfałszowane albo niewłaściwe (rzecz dotyczy przede wszystkim jakichś robotów itd.). Mimo wszystko lepiej jest zaufać własnym mechanizmom. Efekt rozmowy był owocny, bowiem dzięki niej Open Power Forms wzbogacił się o kolejną opcję.

Jest nią emulacja ciastek. Biblioteka wysyła ciastko kontrolne i jeżeli nie jest ono ustawione, odpowiednie wartości doklejane są automatycznie do adresu URL. Jest to robione na poziomie "sprzętowym" i programista nawet nie musi się tym zajmować. Ciastka doklejane są do adresu bez pośrednictwa żadnego z routerów (adresy w stylu plik.php/aaa/bbb?ciastko=wartosc), a podyktowane to zostało dwoma okolicznościami. Po pierwsze, jeden z routerów (opfValueRouter) traktuje adres jako ciąg samych wartości, a więc muszą być one odczytywane z niego w takiej kolejności, w jakiej występują. Gdyby do tego doszły ciastka, powstałoby niemałe zamieszanie. Po drugie, dzięki "tradycyjnej" metodzie możliwe jest dopisywanie wartości zwyczajnym URL-Rewriterem dostępnym w PHP, co gwarantuje, że WSZYSTKIE adresy otrzymają identyczne dane. Gdyby zadanie przerzucić na router i metodę createURL(), mogłoby się okazać, że wygenerowaliśmy jeden szablon, stworzyliśmy ciastko, wygenerowaliśmy drugi i dopiero od niego jest ono uwzględnione w adresach (czyli przekłamanie).

Routery opfNiceRouter i opfValueRouter zyskały jeszcze jedną możliwość. Jeśli odkryją one, że parametry podane są mimo wszystko w tradycyjny sposób, przełączają się one automatycznie na opfDefaultRouter. Tak więc zapisy plik.php/parametr1/wartosc i plik.php?parametr1=wartosc są równoważne i można ich używać zamiennie.

Powrót

Komentarze

Napisał hwao w poniedziałek, 27 marca 2006 o 16:48

Czyli finalnie SessionId laduje na koncu w url'u po ? tak?
Bo tak szczerze to nie za wiele zrozumialem z tego co pisze ;)

Napisał Zyx w poniedziałek, 27 marca 2006 o 21:02

No to streszczenie: ciastka działają w OPF nawet, gdy przeglądarka ich nie obsługuje, gdyż idą wtedy przez GET.

Napisał hwao w poniedziałek, 27 marca 2006 o 21:24

Zyx, ale tak jest w php standartowo, przynajmniej mnie sie tak wydaje ;) (nigdy sie nie wglebialem).

Jak php zczaji ze user nie ma ciacha to odrazu dokleje do url'a sessionId()=CiagRozpoznawczy

Napisał Zyx w poniedziałek, 27 marca 2006 o 21:42

Pewnie, że jest, ale po pierwsze primo, nie w ciastkach lecz w sesjach, które w ten sposób przesyłają sobie ID. Zwyczajnych ciastek PHP już nie dostawia w ten sposób, a OPF - tak. Po drugie secundo, kto powiedział, że OPB korzysta z domyślnego systemu sesji? :)

Napisał hwao w wtorek, 28 marca 2006 o 12:31

Hehe, no to teraz rozumie, ale wedlug mnie trzymanie jakichkolwiek danych (szczegolnie przy takim projekcie) w Cookie poza SessionId jest chore :)

Najlatwiej przechowac SessionId i cala reszte trzymac w sesji, wygodne i bezpieczne. I teraz jedynym "problemem" jest zapisanie SessionId, badz to do Cookie lub Get.

Napisał Denver w wtorek, 28 marca 2006 o 15:13

hwao: no ja wiem, czy to aż takie bezpieczne. Wszystko zależy od implementacji tak naprawdę.

Napisał Zyx w wtorek, 28 marca 2006 o 17:53

OPF daje możliwość. Czy ty to sobie tylko do id sesji, czy do czegoś jeszcze wykorzystasz - to już tylko twoja suwerenna decyzja.

Strona 1 z 1 :: 1

Skomentuj

NickInformacja
E-mailTylko do użytku wewnętrznego.
WWWNie zapomnij o http://
LayoutNapisz tu, czy widzisz dzienny czy nocny layout.
WpisFormatowanie wiki
Internauto, pamiętaj! Wolność to nie samowola - dbaj o kulturę wypowiedzi oraz dyskusji w sieci.

Na Zyxist.com panuje swoboda wyrażania opinii oraz krytyki pod dowolnym adresem. Jedyny warunek: musi być ona kulturalna i rzeczowa. Na chamstwo, prostactwo lub jawne obrażanie kogokolwiek nie ma tu miejsca i takie komentarze są bardzo szybko usuwane. Jeśli zamierzasz polemizować z treścią wpisu, wpierw uważnie ją przeczytaj.

© Tomasz "Zyx" Jędrzejewski 2005 - 2008 | Wykonanych zapytań: 2 | Serwer wirtualny zapewnia