मान लें कि आपकी वेबसाइट में एक GetUser
वेब विधि है:
http://www.example.com/User/GetUser/32
जो JSON प्रतिक्रिया देता है:
{ "Name": "John Doe" }
यदि यह विधि केवल POST अनुरोधों को स्वीकार करती है, तो सामग्री केवल ब्राउज़र में वापस आ जाएगी यदि AJAX अनुरोध http://www.example.com/User/GetUser/32
POST विधि का उपयोग करने के लिए किया जाता है । ध्यान दें कि जब तक आपने CORS को लागू नहीं किया है, तब तक ब्राउज़र आपके लिए यह अनुरोध करने वाले अन्य डोमेन से डेटा की सुरक्षा करेगा।
हालाँकि, यदि आपने GET अनुरोधों की अनुमति दी है, तो POST के बजाय GET के साथ उपरोक्त के समान AJAX अनुरोध करने की अनुमति देता है, एक दुर्भावनापूर्ण उपयोगकर्ता script
HTML में टैग का उपयोग करके अपने JSON को अपनी साइट के संदर्भ में शामिल कर सकता है । इस प्रकार www.evil.com
:
<script src="http://www.example.com/User/GetUser/32"></script>
यह जावास्क्रिप्ट बेकार होना चाहिए www.evil.com
क्योंकि आपके वेब विधि द्वारा लौटाए गए ऑब्जेक्ट को पढ़ने का कोई तरीका नहीं होना चाहिए। हालांकि, ब्राउज़रों के पुराने संस्करणों (जैसे फ़ायरफ़ॉक्स 3) में बग के कारण, जावास्क्रिप्ट प्रोटोटाइप ऑब्जेक्ट्स को फिर से परिभाषित किया जाना संभव है www.evil.com
और आपके डेटा को आपके विधि द्वारा वापस पढ़ना संभव है । इसे JSON अपहरण के रूप में जाना जाता है।
इसे रोकने के कुछ तरीकों के लिए इस पोस्ट को देखें । हालाँकि, यह आधुनिक ब्राउज़र (फ़ायरफ़ॉक्स, क्रोम, IE) के बाद के संस्करणों के साथ एक ज्ञात समस्या नहीं है।