आधुनिक वेब ब्राउज़र कोई सुरक्षा चेतावनी नहीं देंगे क्योंकि मूल विंडो HTTP पर असुरक्षित रूप से चल रही है। हालांकि गिरावट यह है कि आपका वेब ब्राउज़र पता बार में एक सुरक्षित लॉक आइकन नहीं दिखाएगा क्योंकि सुरक्षित सामग्री एक बच्चे की खिड़की (आईफ्रेम) के अंदर है, इसलिए आपके उपयोगकर्ता डर से दूर हो सकते हैं कि फॉर्म असुरक्षित हो सकता है।
सभी वेब ब्राउज़र, क्लासिक & आधुनिक के बाद से मैन-इन-द-बीच हमले की संभावना नहीं है, अगर आईफ़्रेम एक अलग प्रोटोकॉल और/या डोमेन नाम का उपयोग कर रहा है, तो जावास्क्रिप्ट के माध्यम से आईफ्रेम सामग्री तक पहुंच को अस्वीकार कर देता है। इस बिंदु पर आईफ्रेम पर संवाद करने का एकमात्र तरीका आधुनिक वेब ब्राउज़र में पोस्ट मैसेज फ़ंक्शन के माध्यम से है, जो जावास्क्रिप्ट के माध्यम से क्रॉस-डोमेन संचार की अनुमति देता है। यहां तक कि यदि आप पोस्टमेसेज का उपयोग कर रहे हैं, तो iframe को उस कोड को शामिल करने की आवश्यकता होगी जो पेरेंट विंडो से आने वाली पोस्ट मैसेज घटनाओं के लिए सुनती है, जो आईफ्रेम में भुगतान फ़ॉर्म विकसित करने के मामले में केवल माता-पिता को ईवेंट के बाद सुनना होगा भुगतान संसाधित किया जाता है। इस प्रकार, यह बेहद असंभव है कि यदि आप पोस्ट मैसेज के माध्यम से संचार रखते हैं तो एक मैन-इन-द-बीच हमला होता है (iframe केवल पोस्ट मैसेज निष्पादित करता है, और माता-पिता संदेशों के लिए सुनता है)।
बेशक, कोई भी घटना श्रोता को ओवरराइड कर सकता है और पैरेंट विंडो पर कोड निष्पादित कर सकता है, सर्वर को यह विश्वास करने के लिए ट्रिक कर रहा है कि भुगतान संसाधित हो गया था। यही वह समय है जब आपको अपने सर्वर-साइड कोड में सावधानी बरतनी होगी जो यह सुनिश्चित करने के लिए जांच करती है कि एक लेनदेन वास्तव में वैध रूप से हुआ। मेरे मामले में, मेरा भुगतान फॉर्म (iframe) डेटाबेस में एक अस्थायी कुंजी बनाता है और पोस्ट मैसेज के माध्यम से मूल विंडो पर वह कुंजी भेजता है। फिर, पैरेंट विंडो सर्वर पर एक AJAX कॉल करता है, यह देखने के लिए डेटाबेस जांचता है कि क्या महत्वपूर्ण मिलान होता है, और लेनदेन वास्तव में होने वाले रिकॉर्ड बनाने से पहले कुंजी को जल्दी से हटा देता है।
स्रोत
2013-01-25 18:44:23
@ केविन: स्टैक ओवरफ्लो में आपका स्वागत है :) यहां संबंधित प्रश्न है जो कुछ चीजों पर विचार करने के लिए इंगित कर सकता है: http://stackoverflow.com/questions/2356080/ssl-login-in-iframe –