2012-08-02 10 views
5

मैं कुछ नैदानिक ​​उपकरण तैयार कर रहा हूं। यह आईफ्रेम में वेबसाइट पर संचालित होता है - केवल जावास्क्रिप्ट द्वारा।क्लाइंट साइड से किसी भी सत्र को छोड़ दें

अब मुझे जो चाहिए वह उस वेबसाइट में सत्र कुकी से छुटकारा पाने के लिए है जो मेरे आईफ्रेम में है। मुझे कुछ परिचालन करने के बाद बस लॉग आउट करने की आवश्यकता है।

दुर्भाग्य से मैं सत्र कुकी को जावास्क्रिप्ट से नहीं छोड़ सकता क्योंकि यह httpOnly ध्वज के साथ चिह्नित है। मुझे गुप्त मोड में iframe खोलने का कोई तरीका नहीं मिला।

अब इस achiving के लिए नियमों का पालन कर रहे हैं:

  • मैं किसी भी फाइल में जोड़ सकते हैं वेबसाइट सर्वर को लक्षित करने के
  • मैं वेबसाइट डोमेन
  • मैं निर्दिष्ट ब्राउज़र का उपयोग करने के लिए उपयोगकर्ता मजबूर कर सकते हैं पर किसी भी जावास्क्रिप्ट चला सकते हैं (इसे क्रॉस-ब्राउज़र समाधान नहीं होना चाहिए)
  • मैं वेबसाइट कोड
  • को संशोधित नहीं कर सकता समाधान समाधान सर्वर और प्रोग्रामिंग भाषा स्वतंत्र होना चाहिए

कामकाज के लिए कोई विचार?

+1

दिलचस्प प्रश्न है। –

+0

तो, सर्वर पर इन सत्रों को कौन बनाते हैं? –

+0

आईफ्रेम के माध्यम से सर्वर का उपयोग करने वाले मेरे डायग्नोस्टिक ऐप का उपयोगकर्ता .. –

उत्तर

2

तुम बस नहीं कर सकते जावास्क्रिप्ट से कुकीज़ केवल Http लेते हैं।

लेकिन मुझे लगता है कि आप पृष्ठ का विश्लेषण करना चाहते हैं, लेकिन जेएस के साथ भी। तो iframe का उपयोग क्यों करें?

  • ajax अनुरोध कर अपने आवेदन प्रॉक्सी
  • का उपयोग html5 WebSockets प्रॉक्सी सर्वर के रूप में करने के लिए:

    आप पृष्ठ की सामग्री है कि HTML या जावास्क्रिप्ट के बाहर से विश्लेषण किया जाए लाने कर सकते हैं। मुझे लगता है कि websocket सर्वर आपका है। Websockets भी पार डोमेन क्षमता है।

आपको फिर डीओएम को पार्स करने की आवश्यकता है (मैंने इसके लिए कुछ बनाया है)। और शुरू करने का विश्लेषण करने दें।

+0

मुझे पृष्ठ पर काम करने की संभावना है, जैसे कि इसे जा रहा है ... iframe में पृष्ठ पर कार्रवाई कर रहा है .. न केवल इसकी सामग्री का विश्लेषण करें ... –

+0

@ ŁukaszW.pl आप कर सकते हैं। इसे सामान्य प्रॉक्सी के रूप में करें (यानी hidemyass.com)। बस उस सामग्री की प्रतिलिपि बनाएँ और इसे प्रदर्शित करें। क्या यह समस्या है? – Zaffy

+0

सामान्य प्रॉक्सी प्रॉक्सी को लक्षित करने के लिए पृष्ठ पर सभी लिंक को परिवर्तित नहीं करता है? इसे संभालने के लिए बहुत कुछ तरीका .. कोड में यूआरएल, यूआरएल संबंधित लिपियों में ... कुछ गड़बड़ करने का बड़ा मौका है और इसे विश्वसनीय होना चाहिए .. –

1

यदि आप बस आईफ्रेम में उपयोग की जाने वाली कुकीज़ को रोकना चाहते हैं तो आप सैंडबॉक्स विशेषता का उपयोग करने का प्रयास कर सकते हैं।

Disable Cookies Inside A Frame/Iframe

आशा मैं सही ढंग से अपने प्रश्न समझ रहा हूँ:

काफ़ी मिलती-जुलती सवाल की तरह लगता है।

+0

अच्छा शॉट, लेकिन सैंडबॉक्स मेजबान साइट और आईफ्रेम के बीच कुकीज़ को अलग नहीं लग रहा है ... यह अन्य कार्यों को रोक सकता है , लेकिन यह नहीं .. –

0

आईफ्रेम संदर्भ यूआरएल कहें: example.com/iframe.html।

क्या इसके बजाय cookieless.example.com/iframe.html का संदर्भ लें और एक सर्वरसाइड रिवर्स प्रॉक्सी नियम सेटअप है जो उस अनुरोध को उठाता है और इसे example.com/iframe.html पर वापस इंगित करता है।

कैसे आप कुकीज़ serverside सेट पर निर्भर करता है (यानी: '.example.com') कुकीज़ केवल www और रूट डोमेन पर सेट हो जाएगा

+0

लेकिन फिर मुझे एक ही मूल नीति के साथ समस्या होगी, क्योंकि मुझे जेएस के साथ आईफ्रेम सामग्री को संशोधित करने की आवश्यकता है। इसके अलावा मैं पेज और आईफ्रेम पर एक ही कुकीज़ रखने की चिंता नहीं कर रहा हूं ... मुझे कुछ जेएस कोड अनुक्रमों के बीच सत्र छोड़ना है, इसलिए मेरे पास अगली अनुक्रम से पहले साफ कुकीज़ और सत्र है ... –

+0

@ ŁukaszW.pl मुझे लगता है कि यह अच्छा दृष्टिकोण है। बस सोचें ... जब 'कुकी डिलीटर' साइट उपयोगकर्ता को रीडायरेक्ट करेगी, तो आपका आईफ्रेम एडीआर बदल जाएगा और आपकी उत्पत्ति और नीति मिल जाएगी। मुझे कुछ याद आया? – Zaffy

+0

और फिर आप मूल पृष्ठ से अपनी कुकीज़ के साथ वापस आ जाएंगे। इसके अलावा मैं iframe में एप्लिकेशन में सबडोमेन नहीं जोड़ सकता .. बस अपने सर्वर पर कुछ फाइलें अपलोड करें जो मुझे नहीं पता कि यह क्या होगा .. –

1

आप जावास्क्रिप्ट तो बस अपने सर्वर पर AJAX अनुरोध किया है और बता सत्र चर को अनसेट करने के लिए यह।

+0

जैसा कि मैंने कहा था कि यह नैदानिक ​​उपकरण होगा और अभी मुझे नहीं पता कि क्या आवेदन IFrame में मिलेगा, इसलिए मैं यह निर्धारित नहीं कर सकता कि मुझे क्या अनुरोध करना चाहिए। अधिक बुरी खबर यह है कि मुझे वास्तव में पता नहीं है कि यह कौन सा प्लेटफ़ॉर्म होगा, इसलिए मैं उदाहरण के लिए नहीं बना सकता, मेरी स्वयं की PHP स्क्रिप्ट सत्र कुकीज छोड़ना। –

0

मुझे लगता है कि आपको लगता है कि कुकी हैडर मान को रिकॉर्ड कर सर्वर साइड प्रॉक्सी के कुछ प्रकार की आवश्यकता होगी, और फिर अनुरोध में एक मूल्य के आधार पर बाद में इस हेडर मूल्य रीसेट करता है।

यह किसी भी भाषा में लिखने के लिए, आईआईएस/.नेट फ्रेमवर्क उदाहरण के लिए यह एक IHttpModule के एक कार्यान्वयन किया जाएगा पर बहुत कठिन नहीं होना चाहिए।

+0

मैं लक्ष्य एप्लिकेशन तक नहीं पहुंच सकता, इसलिए मैं इसमें HttpModule नहीं डाल सकता। इसके अलावा यह क्रॉस-प्लेटफार्म होना चाहिए - मैं हर वेब सर्वर के लिए प्रॉक्सी नहीं लिख सकता .. –

+0

प्रश्न के बारे में वेबसाइट पर रीडायरेक्ट करने वाली प्रॉक्सी के बारे में क्या? –

+0

kewlashu उत्तर में मेरी टिप्पणी देखें। मैं साइट के प्रॉक्सी और सामान्य उपयोग के बीच भिन्नता का जोखिम नहीं उठा सकता .. –

2

जहां तक ​​मैं समझता हूँ -

यह देखते हुए कि - आप उपयोगकर्ता लॉगिन/लॉगआउट यह में लागू के साथ एक वेबसाइट होगा।

तो आप अपने नैदानिक ​​अनुप्रयोग के लिए किसी तरह (सर्वर में कुछ js या फ़ाइल रखकर) एक config वर या कुछ सेटिंग के रूप में लक्ष्य वेबसाइट के लॉगआउट यूआरएल के लिए हो सकता है तो यह काम बहुत आसान हो सकता है । आवश्यकता होने पर बस अपने डायग्नोस्टिक ऐप को लॉगआउट यूआरएल लोड करने दें।

+0

अगर मैं हार दूंगा तो मेरी योजना है :( –

+0

हां यह एक साधारण गैर-बकवास दृष्टिकोण होगा ..... आपके अंतिम विकल्प के रूप में इस दृष्टिकोण को रखने के आपके कारणों के लिए उत्सुक है? – kewlashu

+0

I इसे सार्वभौमिक बनाना चाहते हैं क्योंकि यह हो सकता है (कभी-कभी कोई साधारण लॉगआउट लिंक नहीं होता है, या ऐसी अन्य सत्र जानकारी होती है जिन्हें इस तरह से नहीं छोड़ा जा सकता है) .. मैं भी चाहता हूं कि उपयोगकर्ता छोटे कॉन्फ़िगरेशन के रूप में ऐसा कर सके .. –

-1

कुकीज़ का अक्षम करने का एकमात्र तरीका

+0

क्या आप घटना मेरे पोस्ट और टिप्पणियों को अन्य उत्तरों में देखते हैं? जैसे मैंने कहा कि मुझे कुकीज़ की आवश्यकता है क्योंकि iframe में पेज को ठीक से काम करना चाहिए जब तक कि मैं उन्हें रीसेट करना नहीं चाहता ... –

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