यह जिसके बाद वैध जावास्क्रिप्ट की तरह दिखता है पता चला है, नहीं है:एक्सएसएस से बचाने के लिए, इनलाइन जावास्क्रिप्ट ऑब्जेक्ट को एन्कोड करने का सही तरीका क्या है?
<html>
<body>
<script>
json = {test: "</script><script>alert('hello');</script>"};
</script>
</body>
</html>
एक ही पाठ, जब एक AJAX API के माध्यम से JSON लौटे बस के रूप में की उम्मीद काम करता है। हालांकि जब मूल एक्सएसएस मुद्दों में इन-लाइन परिणामों को प्रस्तुत किया गया।
एक मनमाना सही JSON स्ट्रिंग को देखते हुए, मुझे इन-लाइन प्रतिपादन के लिए सुरक्षित बनाने के लिए सर्वर पक्ष करने की क्या ज़रूरत है?
संपादित आदर्श रूप में मैं स्ट्रिंग निम्नलिखित के रूप में अच्छी तरह से साथ काम करने के ठीक करना चाहते हैं:
json = {test: "<\/script><script>alert('hello');<\/script>"};
अर्थ, मैं पता नहीं कैसे मेरे अंतर्निहित पुस्तकालय /
चार एन्कोडिंग है है, यह हो सकता है इसे एन्कोड करने के लिए चुना है, या यह नहीं हो सकता है। (इसलिए इसकी संभावना एक regex ठीक और अधिक मजबूत है)
असल में, यदि आप इसे ऑनलाइन प्रस्तुत करना चाहते हैं, तो आपको यह सुनिश्चित करना होगा कि इसमें वर्ण अनुक्रम '' शामिल नहीं है। –
या मुझे लगता है ... मुझे एक साधारण स्ट्रिंग कॉन्सटेनेशन फिक्स के साथ प्रदर्शन के बारे में चिंता है और यह भी कि अन्य अजीब मुद्दे हो सकते हैं, मुझे –
से अवगत नहीं है जब तक कि कुछ अजीब बात न हो, अंतर्निहित लाइब्रेरी स्लैश कैरेक्टर से बच नहीं पाती । जवाक्रिप्ट स्ट्रिंग में इसका कोई विशेष अर्थ नहीं है, इसलिए इससे बचने का कोई कारण नहीं है। – Guffa