2012-07-25 10 views
10

मैं एक पेज वेबपैप पर काम कर रहा हूं। मैं सीधे डोम नोड्स बनाकर प्रतिपादन कर रहा हूं। विशेष रूप से, document.createTextNode("user data") के साथ टेक्स्ट नोड्स बनाकर सभी उपयोगकर्ता द्वारा प्रदत्त डेटा पृष्ठ में जोड़ा जाता है।क्या HTML इंजेक्शन और एक्सएसएस से createTextNode पूरी तरह से सुरक्षित है?

क्या यह दृष्टिकोण एचटीएमएल इंजेक्शन, क्रॉस साइट स्क्रिप्टिंग (एक्सएसएस) की किसी भी संभावना से बचता है, और अन्य सभी बुरी चीजें जो उपयोगकर्ता कर सकते हैं?

उत्तर

9

यह एक सादे पाठ नोड बनाता है, इसलिए हाँ, जहां तक ​​यह जाता है।

हालांकि किसी भी चैनल से डेटा प्राप्त करने के लिए एक असुरक्षित विधि का उपयोग कर XSS समस्या बनाना संभव है, हालांकि यह createTextNode में इनपुट हो रहा है।

उदा। निम्नलिखित असुरक्षित होगा:

document.createTextNode('<?php echo $_GET['xss']; ?>'); 

... लेकिन खतरे पीएचपी echo, नहीं जावास्क्रिप्ट createTextNode से है।

+0

मैं PHP से परिचित नहीं हूं। क्या यह उदाहरण उपयोगकर्ता को कहीं और डेटा से अनुरोध करने की अनुमति देता है और इसे पृष्ठ पर टेक्स्ट के रूप में डाला गया है? –

+0

@breischl - PHP यूआरएल की क्वेरी स्ट्रिंग (जो बाहरी डेटा है) से इनपुट लेता है और इसे बिना बचने के आउटपुट में छोड़ देता है। – Quentin

+0

लेकिन यह अभी भी सादा पाठ के रूप में आउटपुट होगा, इससे कोई फर्क नहीं पड़ता कि इसमें क्या था, है ना? तो आप कुछ पाठ प्रदर्शित करने के अलावा ब्राउज़र को कुछ भी नहीं कर सका? –

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