कल, मैंने Json Hijacking with Asp.Net MVC को रोकने के तरीके के बारे में कुछ अच्छे लेख पढ़े। नियम यह है: अनुरोध प्राप्त करने पर जेसन प्रारूप में समझदार डेटा कभी नहीं भेजें। Google पर एक साधारण खोज के साथ, आप आसानी से सीख सकते हैं कि एक स्क्रिप्ट को कैसे परिभाषित किया जाए जिसका उपयोग किसी अन्य उपयोग से डेटा को अपने ऑथ कुकी की सहायता से निकालने के लिए किया जाएगा।अजाक्स Jquery पोस्ट अनुरोध के साथ जेसन अपहरण
लेकिन इन सभी लेखों को पढ़ने के बाद, मुझे नहीं पता कि जेसन हाइजैकिंग अजाक्स Jquery पोस्ट अनुरोध के साथ क्यों करना संभव नहीं है। मैंने पढ़ा है कि अजाक्स अनुरोध एक ही मूल नीति के अधीन हैं लेकिन JQuery के पास क्रॉस-डोमेन अनुरोध करने में सक्षम होने के लिए एक संपत्ति है।
इस मामले में, दस्तावेज़ तैयार ईवेंट पर $ .postJSON का उपयोग करके एक स्क्रिप्ट के साथ जेसन हाइजैकिंग करना संभव है? यदि हां या नहीं, तो क्या आप मेरी व्याख्या कर सकते हैं क्यों?
यहाँ कोड का एक सरल गुच्छा मैं क्या सोच रहा हूँ क्या करना है:
$.postJSON = function (url, data, callback) {
$.post(url, data, callback, "json");
};
<script>
$(function(){
$.postJSON("/VulnerableSite/ControllerName/ActionName",
{ some data parameters }, function() {
// Code here to send to the bad guy the data of the hacked user.
}
});
</script>
आपको बहुत बहुत धन्यवाद।
मैंने इस पोस्ट पर पढ़ा है (http://stackoverflow.com/questions/3877309/submit-cross-domain-ajax-post-request) और वह कहता है कि मैं पोस्ट अनुरोध के साथ क्रॉस डोमेन AJAX कॉल कर सकता हूं लेकिन मैंने जीता एक प्रतिक्रिया वापस प्राप्त नहीं है। किसी भी तरह से, उसने मुझे जवाब दिया कि JSON के संबंध में कोई भेद्यता संभव नहीं है यदि मैं हमेशा POST अनुरोध का उपयोग करता हूं। – Samuel
क्या सरणी को फिर से परिभाषित करने की कोशिश करने के बजाय $ .get पर कॉल के साथ जेसन अपहरण करना संभव है? नेट पर पढ़ने वाले सभी लेखों में कभी भी AJAX के साथ क्वेरी प्राप्त करने के लिए jquery के उपयोग का उल्लेख नहीं किया जाता है। – Samuel
@ सैमुएल: नहीं, jQuery AJAX अनुरोध [समान मूल नीति] (http://en.wikipedia.org/wiki/Same-origin_policy) द्वारा संरक्षित हैं। 'Src12 के साथ'