2011-12-21 10 views
11

हाल ही में मैंने 'JSON अपहरण' के बारे में कुछ लेख पढ़े हैं, और इनमें से कुछ here है।क्या आधुनिक ब्राउज़र पर 'JSON अपहरण' करना संभव है?

तो, मैंने अपने ब्राउज़र, क्रोम 17 (देव), फ़ायरफ़ॉक्स 8 और आईई 8 पर नीचे करने की कोशिश की।

  • ओवरराइड वस्तु या सरणी निर्माता
  • __defineSetter__ विधि
  • संशोधित defineProperty विधि

संशोधित लेकिन मैं (शाब्दिक) JSON डेटा के साथ कुछ भी नहीं कर सकता है।

क्या 'JSON अपहरण' समस्या आधुनिक ब्राउज़र पर हल हो गई है? या मैं इसे पुन: पेश कैसे कर सकता हूं?

+0

+1 महान प्रश्न। एफडब्ल्यूआईडब्ल्यू, मुझे क्रोम 16 में काम करने के लिए 'ऑब्जेक्ट.डेफिनप्रॉपर्टी()' या 'ऐरे' का ओवरराइडिंग नहीं मिला। – Matt

+0

इसे पढ़ें http://stackoverflow.com/questions/2669690/why-does-google-prepend- जबकि 1-से-उनके-जेसन-प्रतिक्रिया – techouse

उत्तर

1

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

लेकिन ईएस 5 के साथ अधिकांश मौजूदा ब्राउज़र अब इस मुद्दे से प्रभावित नहीं होंगे। फिर भी गहराई रक्षा नियमों में! और भविष्य के मुद्दों या प्रतिशोध आदि के खिलाफ मेरी सुरक्षा

0

यदि आप JSON को डीकोड करने के लिए eval का उपयोग करते हैं तो सिद्धांत में ऐसा कुछ किया जा सकता है।

जेएसओएन डिकोडिंग कार्यक्षमता प्रदान करने वाले लोकप्रिय जेएस पुस्तकालय JSON.parse पर डिफ़ॉल्ट होंगे जब ब्राउज़र ने JSON समर्थन बनाया है, इस प्रकार कोई भी हालिया ब्राउज़र तब तक कमजोर नहीं होना चाहिए जब तक कि आपका कोड गलत तरीके से लिखा न जाए।

+0

डिकोडिंग वास्तव में प्रासंगिक नहीं है क्योंकि दूरस्थ डोमेन [वही मूल नीति] (http://en.wikipedia.org/wiki/Same-origin_policy) के कारण प्रतिक्रिया को पढ़ नहीं सकता है। । – SilverlightFox

+1

संपूर्ण बिंदु यह है कि वही मूल नीति स्क्रिप्ट टैग पर लागू नहीं होती है। –

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