क्यों गूगल/फेसबुक आदि जैसे unparseable cruft जोड़ने के लिए के रूप में this प्रश्न पढ़ने के बाद:JSON अयोग्य क्रूर: इतना गंभीर क्यों?
while(1);
for(;;);
&&&START&&& ... &&&END&&&
- 1 और 3 उनके JSON के
संयुक्त प्रतिक्रियाएं, मैंने प्रेरणा को समझ लिया है। लेकिन मैं अभी भी क्यों इस तरह के अपेक्षाकृत जटिल तंत्र उपयोग किया जाता है जबकि इसी तरह के प्रभाव की तरह
- में सिंटेक्स त्रुटि के साथ पूरे पंक्ति अमान्य प्रतिपादन के लिए शुरुआत में एक अतिरिक्त
- टिप्पणी
)
जोड़ने चीजों के साथ प्राप्त किया जा सकता है के रूप में स्पष्ट नहीं कर रहा हूँ
अब में JSON लपेटकर, यह है कि यह अतिरिक्त अनंत लूप और (अजीब) सिंटैक्स त्रुटि के संरक्षण के चारों ओर बड़े और अनुमोदक जावास्क्रिप्ट पारसर्स प्राप्त करने के लिए किया जाएगा लगता है, लेकिन मैं यह दर्शाता है कोई संदर्भ खोजने के लिए नहीं कर पा रहे यह मामला है। एक और SO question है जो while(1);
वर्कअराउंड को भी भंग करने के लिए चला जाता है (1 को बताया जा सकता है) और फॉर्म {}&&
के दूसरे कार्यप्रणाली को अस्वीकार कर दिया गया है, लेकिन यह बताता नहीं है कि किसी भी स्रोत का उद्धरण क्यों करें या उद्धृत करें।
अन्य संदर्भ:
- http://code.google.com/p/fbug/issues/detail?id=369
- http://prototypejs.org/learn/json, जो
/*-secure-\n...*/
क्या यह सिर्फ मुझे है या यह अस्पष्टता के माध्यम से सुरक्षा की तरह महसूस करता है और किसी भी स्वीकार्य लिखित एक्सएसएस शोषण के लिए भी कोई समस्या नहीं होगी? JSON.parse() वास्तव में eval() कहते हैं? –
एक संबंधित सवाल यह है कि वे सिर्फ सरणी के बजाय JSON ऑब्जेक्ट्स क्यों नहीं लौटते हैं। किसी ऑब्जेक्ट को लौटने से पूरी तरह से वैध JSON उत्पन्न होता है जो वैध जावास्क्रिप्ट नहीं है, जो क्लीनर तरीके से JSON अपहरण को रोकता है। संभावित उत्तर यह है कि ये सेवाएं बैंडविड्थ को बचाने के लिए जितना संभव हो सके कॉम्पैक्ट प्रारूप के रूप में वापस लौटने का प्रयास कर रही हैं। अधिकांश वेब सेवाएं काफी बड़े पैमाने पर संचालित नहीं होती हैं और अनुकूलन के इस स्तर से बच सकती हैं। –