2009-06-03 8 views
8

मेरा वर्तमान दस्तावेज़ URL http: //127.0.0.1/foo है और मुझे http: //127.0.0.1/bar के लिए कुकी के मान को बदलने की आवश्यकता है। document.cookie खाली है क्योंकि दस्तावेज़ का यूआरएल foo है। इस पल के लिए, मैं सिर्फ कुकी मूल्य को पढ़ना चाहता हूं। कोई सुराग?एक अलग पथ से एक कुकी पुनर्प्राप्त करें

उत्तर

16

जब आप कुकी बनाते हैं, तो यदि आप 'foo' के बजाय '/' पर पथ सेट करते हैं, तो आप इसे डोमेन पर कहीं भी पढ़ सकते हैं, जिसमें '/ foo', '/ bar', आदि शामिल हैं

+0

बीटीडब्ल्यू यह लिंक उपयोगी हो सकता है: http://www.quirksmode.org/js/cookies.html –

+0

मैं कुकी के निर्माण और पथ को नहीं बदल सकता। तो इसका मतलब है कि foo से बार की कुकी का उपयोग करना असंभव है? –

+0

यह एक बड़ी सुरक्षा समस्या नहीं है क्योंकि कुकी वास्तव में किसी भी तरह से संरक्षित नहीं है। पथों को अनदेखा करने वाले एसओपी के कारण, कुकी पथ एक सार्थक सुरक्षा बाधा नहीं हैं। – Antimony

2

आप कुकीज़ को किसी अन्य पथ से नहीं एक्सेस कर सकते हैं - अन्यथा यह एक सुरक्षा छेद होगा।

एक ही रास्ता मैं के /bar बना रही है सोच सकते हैं एक कुकी जिसका path=/ तो / में सभी पृष्ठों (/foo सहित) उस तक पहुँच सकता है कि निर्धारित किया है।

3

जे जे और ग्रोटी के अनुसार उल्लेख किया गया है कि आप अपने पृष्ठ से ऐसा नहीं कर सकते हैं। हालांकि, आपके पास एक काम है।

i। एक आईफ्रेम रखें जो http://localhost/bar पर इंगित करता है। "बार" पृष्ठ पर एक छिपा तत्व रखें जहां आप कुकी मान संग्रहीत करते हैं। (यह iframe 1 * 1 आकार होना चाहिए ताकि यह दिखाई न दे)।

ii। कुकी मूल्य लाने के लिए "foo" पृष्ठ पर जावास्क्रिप्ट का उपयोग करें।

एक समान दृष्टिकोण (संशोधनों के साथ) कुकी मूल्य भी लिखने के लिए उपयोग किया जा सकता है!

धन्यवाद,

रामजी।

+0

क्या यह इंटरनेट पर किसी को कुकी पकड़ने नहीं देगा? – Antimony

12

आप /bar के अंदर संसाधन पर इंगित बना सकते हैं, और इसमें क्रॉस-फ्रेम-स्क्रिप्ट बना सकते हैं। उदाहरण के लिए:

<iframe src="/bar/blank.html" id="barframe"></iframe> 

var barframe= document.getElementByIf('barframe'); 
var bardocument= 'contentDocument' in barframe? barframe.contentDocument : barframe.contentWindow.document; // IE compat 
alert(bardocument.cookie); 

कुकी path= एक सुविधा उपाय आकस्मिक कुकी नाम संघर्ष को रोकने के लिए है। यह देखते हुए कि विभिन्न पथ जावास्क्रिप्ट मूल साझा करते हैं, यह एक प्रभावी सुरक्षा तंत्र नहीं है।

+3

+1 यह इंगित करने के लिए कि कुकी पथ एक सार्थक सुरक्षा दीवार नहीं हैं। – Antimony

+1

पथ एक प्रदर्शन सुविधा है, सुरक्षा एक नहीं ... मुझे "barframe.contentDocument" भाग गुम था। बहुत बहुत धन्यवाद। मुझसे +1 –

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