2012-07-13 11 views
6

क्या कोई मेरी उत्पत्ति नीति को बेहतर ढंग से समझने में मेरी सहायता कर सकता है। मैंने कई वेबसाइटों को इसका वर्णन किया है, लेकिन मैं एक स्पष्टीकरण की तलाश कर रहा हूं और अधिक सरल, आप इसे किसी बच्चे को कैसे वर्णन करेंगे?लेमन शर्तों में समान उत्पत्ति नीति

यह link मुझे मिली सबसे अच्छी नौकरी करने लगता है। क्या कोई विस्तार कर सकता है? क्या कोई यह समझा सकता है कि यह नीति क्यों मौजूद है?

+0

क्या आपने [विकिपीडिया] (http://en.wikipedia.org/wiki/Same-origin_policy) की कोशिश की है? –

+1

हां, मुझे इसे स्वीकार करने से नफरत है, लेकिन मैं अभी भी इसके बारे में उलझन में हूं। और मुझे कोई स्पष्ट कारण नहीं मिल रहा है कि यह नीति क्यों मौजूद है – GK1667

+1

सीएसआरएफ के बारे में पढ़ने का प्रयास करें। इसीलिए। – Oded

उत्तर

21

CSRF को रोकने के लिए समान मूल नीति की आवश्यकता है। इस परिदृश्य की कल्पना करें:

  1. बैंक मैनेजर जो फैटकैट के पास उसके बैंक के प्रशासनिक बैकएंड पर खाता है। यह खाता उन्हें टीबीटीएफ बैंक के बैंकों के लिए गोपनीय खाता जानकारी तक पहुंचने देता है। वह किसी के पिन नंबर को भी रीसेट कर सकता है, धन हस्तांतरण कर सकता है, खाता स्वामित्व बदल सकता है, आदि
  2. अब, टीबीटीएफ बैंक जैक आईटी गाय को बंद कर देता है। अब वह जैक द डिग्रंटल्ड एक्स-आईटी-गाय है, और वह अपने पूर्व नियोक्ता पर बदला लेना चाहता है। जैक को बैंक के प्रशासनिक बैकएंड तक पहुंच नहीं है, लेकिन वह जानता है कि जो करता है।
  3. तो जैक जैक द्वारा बनाए गए पृष्ठ के लिंक के साथ अपने मालिक को एक ईमेल भेजता है। पृष्ठ पर, जैसे कुछ जावास्क्रिप्ट है:


var xhr = new XMLHttpRequest(), 
    data = "from="+victimAccount 
      + "&to="+jacksAccount 
      + "&amt=a+gazillion+dollars"; 
xhr.open("POST", "http://tbtfbank.tld/accounts/wiretransfer.aspx", true); 
xhr.send(data); 
  1. अगले दिन, जो उन्होंने अपने प्रशासनिक खाते में उनके कार्यालय और लॉग पर आता है हमेशा पृष्ठभूमि में खुले टैब को करता है और छोड़ देता है।
  2. जो नेटली गेट्स में शामिल नेटली पोर्टमैन की तस्वीरों के लिंक वाले एक ईमेल को देखता है। तो स्वाभाविक रूप से वह दुर्भावनापूर्ण वेबपृष्ठ खोलने पर उस पर क्लिक करता है।
  3. ब्राउज़र पृष्ठ पर जावास्क्रिप्ट चलाता है और टीबीटीएफ बैंक की प्रशासनिक बैकएंड साइट पर AJAX POST अनुरोध करता है। चूंकि जो साइट पर पहले से ही लॉग इन है और सक्रिय सत्र है, बैंक आवेदन कमांड स्वीकार करता है और जैक के ऑफशोर बैंक खाते में गैजिलियन डॉलर चलाता है।

और जैक हजारों खाता संख्याओं और पिनों या किसी अन्य जानकारी को फसल करने के लिए उसी तकनीक का आसानी से उपयोग कर सकता था जो बैंक प्रबंधक के पास अपने खाते के माध्यम से पहुंच है।

सौभाग्य से, वही मूल नीति हमें इस प्रकार के हमलों से अधिकतर समय से बचाती है, क्योंकि जैक के दुर्भावनापूर्ण पृष्ठ को बैंक एप्लिकेशन से अलग डोमेन पर होस्ट किया जाता है, इसलिए इसे बैंक आवेदन में एक्सएचआर बनाने की अनुमति नहीं है।हालांकि दुर्भावनापूर्ण पृष्ठ में अभी भी एक छवि हो सकती है जो बैंक आवेदन के लिए एक GET अनुरोध करता है, इसलिए यह महत्वपूर्ण है कि साइड इफेक्ट्स के साथ क्रियाएं जीईटी अनुरोधों के माध्यम से शुरू नहीं की जाएंगी और एप्लिकेशन उन अनुरोधों के संदर्भकर्ता शीर्षलेख की जांच करते हैं जो उन्हें प्राप्त होते हैं और एंटी- सीएसआरएफ टोकन

+6

+1, यह सीएसआरएफ का एक अच्छा उदाहरण है। इसके अलावा, यह Google/" –

+0

पढ़ने के बाद Google" नेटली पोर्टमैन गर्म ग्रिट में शामिल क्यों हुआ "यह वही है जो मैं उम्मीद कर रहा था। बहुत बहुत धन्यवाद! – GK1667

4

असल में इसका अर्थ है - केवल उसी स्क्रिप्ट से सेवा की जाने वाली स्क्रिप्ट्स एक दूसरे के ऑब्जेक्ट्स और गुणों को प्रतिबंध के बिना एक्सेस कर सकती हैं (इसलिए यदि आपके पास नामित फ़ंक्शंस वाले .js फ़ाइल है, तो आप इसे होस्ट की गई किसी अन्य फ़ाइल से कॉल कर सकते हैं एक ही डोमेन)।

इसलिए, यदि आप एक अलग डोमेन प्रतिबंध से एक स्क्रिप्ट परोस रहे हैं लागू करते हैं।

यह नीति मौजूद है क्योंकि किसी जावास्क्रिप्ट फ़ाइल के लिंक को इंजेक्ट करना बहुत आसान है (कुछ जावास्क्रिप्ट कोड कहें जो ऐसी फ़ाइल के लिंक को इंजेक्ट करता है) जो एक अलग डोमेन पर है। यह एक सुरक्षा जोखिम है - आप वास्तव में केवल उस कोड से आते हैं जो उस साइट से आता है जिसे आप निष्पादित करने के लिए करते हैं और न कि वहां मौजूद कोई भी कोड।

+4

'एक ही डोमेन से सेवा की जाने वाली केवल स्क्रिप्ट एक-दूसरे की ऑब्जेक्ट्स तक पहुंच सकती हैं। फिर, आप सीडीएन से jQuery क्यों शामिल कर सकते हैं और इसे अपने पृष्ठ पर डीओएम एक्सेस कर सकते हैं? –

+1

@ रॉकेट: सही। यह उस पेज का डोमेन है जहां स्क्रिप्ट निष्पादित करता है, जहां जेएस फ़ाइल होस्ट की जाती है। वास्तव में, 'सीओआरएस' मानकीकृत होने से पहले, [JSONP] (http://en.wikipedia.org/wiki/JSONP) यह था कि आपने क्रॉस-डोमेन AJAX अनुरोध कैसे किए हैं, जो मूल रूप से ऑफ-साइट जेएस फ़ाइल से लिंक होते हैं किसी अन्य डोमेन से डेटा प्राप्त करने का तरीका (JSON रूप में)। –

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