2012-05-27 10 views
5

$ .cookie non sta leggendo i cookie che sono stati precedentemente impostati dalla risposta del server.

Sono in grado di leggere i cookie impostati con $ .cookie().

Posso vedere tutti i cookie di dominio impostati con il componente aggiuntivo per gli sviluppatori Web di Firefox.
Inoltre, il lato server può vedere i cookie della richiesta, quindi il browser li ha sicuramente.

Ho sperimentato con i tempi di scadenza senza alcun risultato.

+0

Cosa succede se si confrontano i cookie a fondo? Se si comportano diversamente, c'è qualche differenza – zerkms

risposta

6

Il problema è che il lato server sta inviando i biscotti con la HttpOnly impostazione come descritto qui: http://en.wikipedia.org/w/index.php?title=HTTP_cookie#HttpOnly_cookie

cookie inviati in questo modo non sono accessibili attraverso document.cookie. Questo è generalmente usato per aiutare a proteggere il valore del cookie da eventuali attacchi XSS sul tuo sito.

Modifica: non hai specificato quale tecnologia stai utilizzando sul lato server per impostare i cookie. Nel caso in cui si sta utilizzando PHP, questo link sono elencati i modi possibili potrebbe essere impostato il flag HttpOnly:

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

1

UPDATE: ho sbagliato nella mia risposta originale (vedi sotto) ... Pagine più in basso il l'albero del percorso può leggere i cookie di livello superiore, quindi i percorsi non devono corrispondere esattamente. Lasciando la mia risposta originale nel caso in cui qualcun altro commetta lo stesso errore. Il mio problema è stato causato dal fatto che ho impostato un cookie da javascript, quindi ho provato a modificare il lato del cookie server. Cookie con targeting server con percorso "/", quindi cookie con percorso "/ mypages" non è stato modificato.

$ .cookie grado di leggere solo i cookie sotto il percorso del documento corrente, quindi se la pagina è> mysite.com/mypages/mypage.aspx, il server impostare il percorso come "/" quando si imposta un cookie, > ma $ .cookie proverà a leggere dal percorso "/ mypages" e non leggerà il cookie. Ho solo provato> questo problema. Se non hai percorsi diversi come questo, è probabile che questo non sia il tuo problema.

Problemi correlati