2012-05-27 5 views
5

$ .cookie, daha önce sunucu yanıtı tarafından ayarlanmış çerezleri okumaz.

$ .cookie() ile ayarlanmış çerezleri okuyabilirim.

Firefox'un Web Developer eklentisiyle ayarlanmış tüm alan tanımlama bilgilerini görebiliyorum.
Ayrıca, sunucu tarafı istek tanımlama bilgilerini görebilir, bu nedenle tarayıcı kesinlikle onlara sahiptir.

Son kullanma sürelerini boşuna yazarak denedim. Bu şekilde gönderilen http://en.wikipedia.org/w/index.php?title=HTTP_cookie#HttpOnly_cookie

Çerezler document.cookie aracılığıyla erişilemiyor:

+0

Çerezleri iyice karşılaştırırsanız ne olur? Farklı davranırlarsa - bazı farklar vardır – zerkms

cevap

6

Sorun burada anlatıldığı gibi sunucu tarafında ayar HttpOnly ile çerezleri gönderiyor olmasıdır. Bu genellikle çerez değerini sitenizdeki olası XSS ​​saldırılarına karşı korumaya yardımcı olmak için kullanılır.

Düzenleme: Çerezleri ayarlamak için sunucu tarafında hangi teknolojiyi kullandığınızdan bahsetmediniz.

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

1

GÜNCELLEME: PHP kullandığınız durumda, bu bağlantı HttpOnly bayrak kurulabileceği olası yolları listeler benim orijinal cevap yanlıştı ... (aşağıya bakınız) Sayfalar daha da aşağı yol ağacı üst düzey çerezleri okuyabilir, bu yüzden yolların tam olarak eşleşmesi gerekmez. Bir başkasının aynı hatayı yapması durumunda orijinal cevabımı terk ediyorum. Benim sorun javascript bir çerez ayarlama, daha sonra çerez sunucu tarafında değiştirmeye çalışıyorum neden oldu. "/" Yolu ile çerez hedefli çerez, böylece "/ mypages" yolundaki çerez değişmedi. Sayfanız ise> mysite.com/mypages/mypage.aspx, sunucu olarak yolunu belirleyecektir böylece

$ .cookie sadece, geçerli belge yolu altında çerezleri okuyabilir "/" çerez ayarlarken, > Ama $ .cookie "/ mypages" yolundan okumaya çalışacak ve çerezi okuyamayacaktır. Ben sadece bu soruna kendim girdim. Böyle farklı yollar yoksa, bu muhtemelen sorun değil.