2009-06-20 13 views
34

मैं एक मंच पर जाता हूं जो vBulletin 3.8 का उपयोग करता है। जब मैं लॉग इन करता हूं, तो मैं यह देखने के लिए फ़ायरबग का उपयोग करता हूं कि कुकीज़ सेट की गई थीं। मैं इन कुकीज़ देखें:दस्तावेज़.cookie साइट के लिए सभी कुकी क्यों नहीं दिखाता है?

__utmb, __utmc, __utma, __utmz, bbsessionhash, vbseo_loggedin, bbpassword, bbuserid, bblastactivity, bblastvisit

वे सब एक मूल्य सेट था, और डोमेन समान था।

लेकिन जब मैं उन्हें देखने के लिए JavaScript का उपयोग, यह केवल इन कुकीज़ देखा:

__utmb, __utmc, __utma, __utmz, vbseo_loggedin, bblastactivity, bblastvisit

फ़ायरबग में, मैं केवल देखने इन तीन कुकीज़: bbsessionhash, bbpasword और bbuserid, जो वास्तव में सेट थे। HTTP केवल कॉलम HTTP में ही। इसका क्या अर्थ है और यही कारण है कि मैं उन कुकीज़ को document.cookie का उपयोग कर जावास्क्रिप्ट में नहीं देख सकता हूं?

उत्तर

54

http://en.wikipedia.org/wiki/HTTP_cookie से:

कुकीज़ सीधे इस तरह के जावास्क्रिप्ट के रूप में क्लाइंट साइड कार्यक्रमों को दिखाई अगर वे केवल Http ध्वज के साथ भेजा गया है नहीं हैं।

Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net; HttpOnly

: सर्वर दृष्टि से, केवल सामान्य मामले की सम्मान के साथ अंतर यह है कि सेट कुकी शीर्ष लेख लाइन युक्त स्ट्रिंग `केवल Http 'एक नए क्षेत्र जोड़ा जाता है है

ब्राउज़र इस तरह के एक कुकी प्राप्त करता है, यह सामान्य निम्न HTTP एक्सचेंजों में, के रूप में उपयोग करने के लिए, लेकिन यह क्लाइंट साइड स्क्रिप्ट के लिए दृश्यमान बनाने के लिए नहीं माना जाता है। HttpOnly ध्वज किसी भी मानक का हिस्सा नहीं है, और सभी ब्राउज़रों में लागू नहीं किया गया है।

2017 से अद्यतन: बहुत समय 2009 के बाद से पारित किया था, और HttpOnly हैडर झंडा एक मानक, एक ही दस्तावेज़ में वर्णित भंडारण अर्थ विज्ञान के साथ section 5.2.6 of RFC6265 में परिभाषित किया गया, बन गया है ("http के लिए देखो आरएफसी पाठ में "केवल ध्वज"।

वहाँ कि "गैर- HTTP" API, उदा से HttpOnly कुकीज़ के बारे में कुछ भी उपयोग करने के लिए कोई रास्ता जावास्क्रिप्ट। डिजाइन द्वारा, न तो पढ़ना, न ही ऐसी कुकीज़ लिखना संभव है।

+1

लेकिन क्या किसी भी तरह से आगे की ओर से उन कुकीज़ तक पहुंचने का कोई तरीका है? कुकी प्रबंधक क्रोम एक्सटेंशन उन्हें दिखा रहा है, लेकिन document.cookie नहीं। –

+2

@ सिल्वररिंगवी, क्षमा करें लेकिन कोई नहीं है। यदि कोई तरीका है, तो यह एक ब्राउज़र सुरक्षा बग (और एक गंभीर गंभीर) है जिसे रिपोर्ट किया जाना चाहिए और तय किया जाना चाहिए। ब्राउज़र एक्सटेंशन अलग-अलग मामले हैं, हालांकि - उनके पास वेबसाइट से अधिक विशेषाधिकार हैं, और प्रबलित API (जैसे [क्रोम के लिए 'chrome.cookies.getAll'] (https://developer.chrome.com/extensions/cookies#method-getAll)) जो सभी कुकीज़ देख सकते हैं। – drdaeman

+0

@ सिल्वररिंगवी, क्या आपको HTTP केवल ध्वज के साथ कुकीज़ तक पहुंचने का कोई तरीका मिला है? –

संबंधित मुद्दे