जावास्क्रिप्ट का उपयोग करके एक HttpOnly कुकी कैसे पढ़ें


90

क्या जावास्क्रिप्ट के साथ एक सुरक्षित कुकी पढ़ने का कोई तरीका है?
मैंने इसका उपयोग करने की कोशिश की document.cookieऔर जहां तक ​​मैं इस लेख पर सुरक्षित कुकीज़ और HttpOnly ध्वज के बारे में देख सकता हूं, मैं इस तरह से एक सुरक्षित कुकी तक नहीं पहुंच सकता।

क्या कोई वर्कअराउंड का सुझाव दे सकता है?


1
से विकी : एक सुरक्षित कुकी ही प्रयोग किया जाता है जब एक ब्राउज़र HTTPS के माध्यम से एक सर्वर पर जाकर किया जाता है।
बजे पावेल होडेक

6
@ पावेल होडेक यह गलत झंडा है। "सुरक्षित" कुकी ध्वज का HTTPOnly सुरक्षा ध्वज से कोई लेना-देना नहीं है। उनके पास एक भयानक नामकरण प्रणाली है।
बदमाश

1
इस प्रश्न का शीर्षक "HttpOnly" ध्वज को शामिल करने के लिए बदला जाना चाहिए। जैसा कि यह खड़ा है ऐसा लगता है कि सवाल "सुरक्षित" ध्वज के बारे में है।
टॉम

जवाबों:


125

जब HTTPOnly ध्वज सेट किया जाता है , तो विभिन्न ब्राउज़र विभिन्न सुरक्षा उपायों को सक्षम करते हैं । उदाहरण के लिए ओपेरा और सफारी जावास्क्रिप्ट को कुकी में लिखने से नहीं रोकते हैं। हालांकि, सभी प्रमुख ब्राउज़रों के नवीनतम संस्करण पर पढ़ना हमेशा निषिद्ध है।

लेकिन इससे भी महत्वपूर्ण बात यह है कि आप एक HTTPOnlyकुकी क्यों पढ़ना चाहते हैं ? यदि आप एक डेवलपर हैं, तो बस ध्वज को अक्षम करें और सुनिश्चित करें कि आप अपने कोड का xss के लिए परीक्षण करें। मेरा सुझाव है कि यदि संभव हो तो आप इस ध्वज को अक्षम करने से बचें। HTTPOnlyझंडा और "सुरक्षित झंडा" (जो कुकी बलों से अधिक https भेजे जाने के लिए) हमेशा सेट होना चाहिए।

यदि आप एक हमलावर हैं , तो आप एक सत्र को हाईजैक करना चाहते हैं । लेकिन HTTPOnlyझंडे के बावजूद एक सत्र को हाईजैक करने का एक आसान तरीका है । आप सत्र आईडी को जाने बिना भी सत्र पर सवारी कर सकते हैं। माइस्पेस सामी कीड़ा ने ऐसा ही किया। इसने CSRF टोकन को पढ़ने और फिर एक अधिकृत कार्य करने के लिए एक XHR का उपयोग किया । इसलिए, हमलावर लगभग कुछ भी कर सकता है जो लॉग उपयोगकर्ता कर सकता है।

लोगों को HTTPOnlyझंडे पर बहुत अधिक विश्वास है , XSS अभी भी शोषक हो सकता है। आपको संवेदनशील सुविधाओं के चारों ओर अवरोध स्थापित करना चाहिए। जैसे कि परिवर्तन किए गए पासवर्ड को वर्तमान पासवर्ड की आवश्यकता होती है। एक नया खाता बनाने के लिए एक व्यवस्थापक की क्षमता को कैप्चा की आवश्यकता होती है, जो एक सीएसआरएफ रोकथाम तकनीक है जिसे आसानी से एक्सएचआर के साथ बाईपास नहीं किया जा सकता है ।


क्या आप कृमि के बारे में विस्तार से बता सकते हैं? यह लिंक काम नहीं करता है और वास्तव में इंटरनेट से भी बहुत कुछ नहीं समझता है। धन्यवाद।
अभिषेक जेबराज

@Abhishek Jebaraj आप सैमी कीड़ा समझ में नहीं करते हैं, या CSRF टोकन, तो पहले की सीमा को समझने की कोशिश ही मूल नीति
किश्ती

मैं एक http केवल कुकी की समाप्ति तिथि प्राप्त करना चाहता हूं, मैं यह कैसे करूं
PirateApp

50

HttpOnly कुकीज़ की पूरी बात यह है कि उन्हें जावास्क्रिप्ट द्वारा एक्सेस नहीं किया जा सकता है।

उन्हें पढ़ने के लिए आपकी स्क्रिप्ट के लिए एकमात्र तरीका (ब्राउज़र बग का शोषण करने के अलावा) सर्वर पर एक सहयोगी स्क्रिप्ट है जो कुकी मान को पढ़ेगी और प्रतिक्रिया सामग्री के भाग के रूप में इसे प्रतिध्वनित करेगी। लेकिन अगर आप ऐसा कर सकते हैं, तो पहले स्थान पर HttpOnly कुकीज़ का उपयोग क्यों करें?


आप यह जानना चाहते हैं कि उपयोगकर्ता ब्राउज़र कुकीज़ के लिए HttpOnly को ठीक से संभालता है या नहीं, इससे पहले कि उपयोगकर्ता विशेष ब्राउज़र से आपकी साइट का उपयोग कर सके। मैं एक उदाहरण की तलाश कर रहा हूं जो HttpOnly ध्वज के ब्राउज़र समर्थन का आश्वासन दे सकता है। एमएस भी ऐसा करने की सलाह देता है, लेकिन इस बारे में कोई और सलाह नहीं दी गई है: HttpOnly के साथ XSS को कम करना
Ursegor

मैंने पाया कि वे ब्राउज़र संस्करण को सफेद सूचीकरण की सलाह देते हैं। मैं गलत हो सकता हूं, लेकिन क्या इसके बजाय जावास्क्रिप्ट से समर्थन की जांच करना एक सुविधाजनक तरीका नहीं होगा? क्या आप इस पर कोई ड्राबेक सुझाव दे सकते हैं?
उर्सगोर

-7

सफारी वेब इंस्पेक्टर का उपयोग करने का एक तरीका है, और स्टोरेज टैब में आप सभी कुकीज़, httpOnly या नहीं देख सकते हैं, और इसे कॉपी करने के लिए कुकी कमांड + सी का चयन करें।

एक बार आपके पास स्ट्रिंग होने के बाद आप इसे आसानी से किसी भी कुकी पार्सर या सादे जावास्क्रिप्ट के साथ पार्स कर सकते हैं।

यहाँ छवि विवरण दर्ज करें


1
FF और Chrome भी ऐसा कर सकते हैं। वे वही नहीं हैं जो ओपी चाहते हैं।
इमबा-टीजेड

@ imba-tjd वैसे आप सही हैं लेकिन मैं उस समय सफारी का उपयोग कर रहा था ताकि उसके लिए सिर्फ वाउच कर सकूं।
पंकजदोहरे 7

जैसे कि आप किसी ऐसे व्यक्ति का उत्तर दे रहे हैं जो पूछता है कि "मुझे उपयोगकर्ता इनपुट कैसे मिलता है", "बस उनसे पूछें और फिर इसे अपने कोड में सेट करें"।
फोरम्यूलेटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.