पर जावास्क्रिप्ट को कॉल करने के लिए HTTP iFrame को अनुमति देना मेरे पास एक https पृष्ठ (https://example.com/main.php) है जिसमें गैर-https स्रोत (http://example.com/inner.php) वाला आईफ़्रेम है। दोनों फाइलें एक ही सर्वर पर हैं - केवल एक को https के साथ एक्सेस किया जाता है और दूसरा नहीं है। मैं गैर https पृष्ठ की जरूरत parent.myfunction()
एचटीटीपीएस पैरेंट फ्रेम
हालांकि के रूप में https main.php
कोड इस तरह का उपयोग कर पृष्ठ पर जावास्क्रिप्ट निष्पादित करने के लिए, जब मैं इस कोशिश, मैं निम्नलिखित त्रुटि मिलती है सक्षम होने के लिए:
Unsafe JavaScript attempt to access frame with URL https://example.com/main.php from frame with url http://example.com/inner.php . Domains, protocols and ports must match.
मैं निर्धारित किया है document.domain = 'example.com'
दोनों फाइलों पर और मैंने सोचा कि यह ठीक करेगा, हालांकि, यह नहीं है। क्या फ्रेम को पैरेंट फ्रेम पर जावास्क्रिप्ट निष्पादित करने की अनुमति देने का कोई तरीका है और इसके विपरीत? यदि हां, तो इसका सुरक्षा प्रभाव क्या है?
पीएस: आप में से उन लोगों के लिए जो केवल दोनों पृष्ठों के लिए https या http का उपयोग करने का सुझाव देंगे, मैं इसे देख रहा हूं। हालांकि, iframe पृष्ठ में होने वाली प्रक्रियाओं के कारण, यह सर्वर लोड समस्याओं के कारण एक व्यवहार्य विकल्प नहीं हो सकता है।
आपका उदाहरण काम नहीं करता है: "my.paypal.com" डोमेन का उपयोग करना संभव नहीं है क्योंकि _whole_ डोमेन (सभी मौजूदा और मौजूदा सबडोमेन के साथ) पेपैल से संबंधित नहीं है। तो मेरी राय में यह सुरक्षा प्रतिबंध का कारण नहीं है। कारण वही है, जैसे कि आप https के माध्यम से http के माध्यम से किसी भी सामग्री को लोड करना चाहते हैं। – rudi
@ रूडोल्फ मुझे नहीं लगता कि आपने जो कहा है उसे पूरी तरह समझ लिया है। हमलावर एक पृष्ठ को दो * फ्रेम * के साथ देता है। एक फ्रेम में सबसे अच्छा https://paypal.com शामिल है। दूसरे में दुर्भावनापूर्ण जावास्क्रिप्ट है। दुर्भावनापूर्ण जावास्क्रिप्ट "paypal.com से वितरित किया गया था" - लेकिन वास्तव में, मैंने अनुरोध को रोक दिया और जो भी सामग्री मैं चाहता था उसे वापस कर दिया (संभव है क्योंकि यह एक सुरक्षित कनेक्शन नहीं है)।इस प्रकार, दो फ्रेम "एक ही मूल जांच पास करते हैं", लेकिन परिणाम आपदा है। – Borealid