2009-05-30 8 views
13

मान लें कि मेरे पास एक डोमेन है, js.mydomain.com, और यह कुछ आईपी पते, और कुछ अन्य डोमेन, requests.mydomain.com पर इंगित करता है, जो एक अलग आईपी पते को इंगित करता है। js.mydomain.com से डाउनलोड की गई फ़ाइल को अजाक्स को requests.mydomain.com पर अनुरोध कर सकते हैं?समान डोमेन नीति को वास्तव में कैसे लागू किया जाता है?

आधुनिक ब्राउज़र समान डोमेन नीति को वास्तव में कैसे लागू करते हैं?

उत्तर

11

आपके प्रश्न का संक्षिप्त उत्तर नहीं है: AJAX कॉल के लिए, आप केवल उसी होस्टनाम (और पोर्ट/योजना) तक पहुंच सकते हैं क्योंकि आपका पृष्ठ लोड हो गया था।

कुछ काम-आसपास हैं: एक foo.example.com में एक यूआरएल बनाना है जो bar.example.com के लिए एक रिवर्स प्रॉक्सी के रूप में कार्य करता है। ब्राउजर परवाह नहीं है कि अनुरोध वास्तव में पूरा किया जाता है, जब तक होस्टनाम मेल खाता है। यदि आपके पास पहले से ही एक फ्रंट एंड अपाचे वेबसर्वर है, तो यह बहुत मुश्किल नहीं होगा।

एक और विकल्प AJAST है, जो आपके दस्तावेज़ में स्क्रिप्ट टैग डालने से काम करता है। मेरा मानना ​​है कि इस तरह Google एपीआई काम करता है। http://code.google.com/p/browsersec/wiki/Part2

+0

धन्यवाद:

आप यहाँ एक ही मूल नीति का अच्छा वर्णन मिल जाएगा! इससे बहुत मदद मिली - AJAST एक शानदार विकल्प की तरह दिखता है। –

+0

एफडब्ल्यूआईडब्ल्यू, आईई आमतौर पर बंदरगाह की परवाह नहीं करता है। http://blogs.msdn.com/ieinternals/archive/2009/07/23/The-IE8-Native-XMLHttpRequest-Object.aspx – EricLaw

+3

यह भी उल्लेखनीय है कि आईपी पता बिल्कुल भी नहीं है (किसी भी ब्राउज़र में) - - यह केवल प्रोटोकॉल/योजना, मेजबान, और (कुछ मामलों में) बंदरगाह है जो मूल निर्धारित करता है। इसका मतलब यह है कि एक ही आईपी से दो अलग-अलग मूल * * संवाद नहीं कर सकते हैं, और यह वही मूल एकाधिक आईपी में एक लोड बैलेंसर * * संवाद कर सकता है। – EricLaw

1

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

विकिपीडिया से the same origin policy पर:

अवधि "मूल" डोमेन नाम का उपयोग परिभाषित किया गया है, अनुप्रयोग परत प्रोटोकॉल, और (अधिकांश ब्राउज़र में) स्क्रिप्ट चलाने HTML दस्तावेज़ के टीसीपी बंदरगाह । दो संसाधनों को समान उत्पत्ति के लिए माना जाता है यदि केवल यदि ये सभी मान बिल्कुल समान हैं।

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