2012-05-27 18 views
5

$. Cookie nie czyta ciasteczek, które zostały wcześniej ustawione przez odpowiedź serwera.

Czytam pliki cookie, które zostały ustawione za pomocą $ .cookie().

Widzę wszystkie pliki cookie domeny ustawione za pomocą dodatku do Firefoksa.
Strona serwera może również zobaczyć pliki cookie żądania, więc przeglądarka je posiada.

Eksperymentowałem z czasami wygaśnięcia bez skutku.

+0

Co zrobić, jeśli dokładnie porównasz pliki cookie? Jeśli zachowują się inaczej - jest jakaś różnica – zerkms

Odpowiedz

6

Problem polega na tym, że po stronie serwera jest wysyłanie plików cookie z HttpOnly ustawienie jak opisano tutaj: http://en.wikipedia.org/w/index.php?title=HTTP_cookie#HttpOnly_cookie

Cookies wysłane w ten sposób nie są dostępne thru document.cookie. Zazwyczaj służy to ochronie wartości plików cookie przed możliwymi atakami XSS w Twojej witrynie.

Edycja: Nie wspomniano, jakiej technologii używasz po stronie serwera, aby ustawić pliki cookie. W przypadku, gdy używasz PHP, ten link zawiera listę możliwych sposobów flagę HttpOnly mogłyby być ustawione:

https://www.owasp.org/index.php/HttpOnly#Using_PHP_to_set_HttpOnly

1

UPDATE: myliłem się w moim oryginalnym odpowiedzi (patrz poniżej) ... Strony dalej w dół drzewo ścieżek może odczytywać ciasteczka wyższego poziomu, więc ścieżki nie muszą się dokładnie zgadzać. Pozostawiając moją oryginalną odpowiedź na wypadek, gdyby ktoś inny popełnił ten sam błąd. Mój problem został spowodowany przez ustawienie pliku cookie z javascript, a następnie próba modyfikacji strony serwera plików cookie. Plik cookie kierowany na serwer ze ścieżką "/", więc plik cookie ze ścieżką "/ mypages" nie został zmieniony.

$ .cookie może odczytać tylko ciasteczka w ramach bieżącej ścieżki dokumentu, więc jeśli strona jest> mysite.com/mypages/mypage.aspx, serwer będzie ustawić ścieżkę jako „/” podczas ustawiania cookie > ale $ .cookie spróbuje odczytać ścieżkę "/ mypages" i nie odczyta pliku cookie. Po prostu wpadłem na ten problem. Jeśli nie masz różnych ścieżek podobnych do tego, to prawdopodobnie nie jest to twój problem.

Powiązane problemy