आइए बोली कल्पना में से एक - http://tools.ietf.org/html/rfc7159#section-12
जावास्क्रिप्ट ऑब्जेक्ट नोटेशन (JSON) डाटा इंटरचेंज प्रारूप विशिष्टता राज्य:
JSON is a subset of JavaScript but excludes assignment and invocation.
Since JSON's syntax is borrowed from JavaScript, it is possible to use that language's "eval()" function to parse JSON texts. This generally constitutes an unacceptable security risk, since the text
could contain executable code along with data declarations. The same consideration applies to the use of eval()-like functions in any other programming language in which JSON texts conform to that
language's syntax.
तो सभी उत्तर जो राज्य, वह कार्य JSON मानक का हिस्सा नहीं हैं सही हैं।
आधिकारिक उत्तर है: नहीं, यह JSON परिणामों में कार्यों को परिभाषित करने के लिए मान्य नहीं है!
जवाब है, हाँ हो सकता है क्योंकि "कोड डेटा है" और "डेटा कोड है।" भले ही JSON भाषा स्वतंत्र डेटा क्रमिक प्रारूप के रूप में उपयोग किया जाता है, फिर भी अन्य प्रकार के माध्यम से "कोड" की सुरंग काम करेगी।
जेएस फ़ंक्शन को निष्पादन के लिए क्लाइंट-साइड ब्राउज़र में पास करने के लिए एक JSON स्ट्रिंग का उपयोग किया जा सकता है। कैसे करने के लिए "Execute JavaScript code stored as a string":
[{"data":[["1","2"],["3","4"]],"aFunction":"function(){return \"foo bar\";}"}]
इस सवाल का की तरह होता है।
तैयार रहें, अपने "eval() बुराई" ध्वज को बढ़ाने के लिए तैयार रहें और इसके आगे "जेएसओएन के माध्यम से सुरंग कार्यों को सुरंग न करें" इसके आगे रखें।
स्रोत
2015-01-05 13:14:26
JSON ब्राउज़र द्वारा सफलतापूर्वक पार्स किया? यदि ऐसा है तो हाँ यह मान्य है (उस सम्मान में)। – harschware
@ हर्सचवेयर - यह केवल सत्य है क्योंकि JSON जावास्क्रिप्ट से संबंधित है। एक भाषा के रूप में स्वतंत्र डेटा क्रमबद्धता प्रारूप यह झूठा है और चलने के लिए एक समस्याग्रस्त सड़क है। – jsoverson
@jsoverson - मैं सहमत हूं। नीचे मेरा जवाब देखें। – harschware