क्या check_plain () पर्याप्त है?


16

क्या check_plain () ब्राउज़र में उपयोगकर्ताओं द्वारा दर्ज किए गए पाठ को फिर से प्रदर्शित करने के लिए पर्याप्त है, या क्या मुझे अभी भी filter_xss () के साथ फ़िल्टर करना चाहिए ?

जवाबों:


26

मुझे लगता है कि सवाल का उपयोग करने के बारे में है check_plain(filter_xss($string)), या filter_xss(check_plain($string))

check_plain()और filter_xss()दो अलग-अलग हैं, और इसके विपरीत, उद्देश्य:

  • check_plain() एक सादे-पाठ स्ट्रिंग में विशेष वर्णों को एनकोड करता है जिसे तब HTML के रूप में प्रदर्शित किया जाता है।
  • filter_xss()क्रॉस-साइट-स्क्रिप्टिंग (XSS) भेद्यता को रोकने के लिए HTML स्ट्रिंग को फ़िल्टर करता है। विशेष रूप से इसका उद्देश्य है:

    • उन पात्रों और निर्माणों को हटाना जो ब्राउज़र को धोखा दे सकते हैं
    • यह सुनिश्चित करना कि सभी HTML इकाइयां अच्छी तरह से बनाई गई हैं
    • सुनिश्चित करें कि सभी HTML टैग और विशेषताएँ अच्छी तरह से बनाई गई हैं
    • सुनिश्चित करें कि कोई HTML टैग्स में एक अस्वीकृत प्रोटोकॉल के साथ URL नहीं हैं (जैसे जावास्क्रिप्ट :)

यदि आप उपयोग करते हैं check_plain(), तो फ़ंक्शन को दी गई स्ट्रिंग को सादे पाठ के रूप में उपयोग किया जाना चाहिए; ऐसे मामले में, filter_xss()आवश्यक नहीं है। यदि आप उपयोग करते हैं filter_xss(), तो फ़ंक्शन को दी गई स्ट्रिंग को HTML माना जाता है, और check_plain()आवश्यक नहीं है।

यदि सवाल एक ही स्ट्रिंग के विभिन्न भागों में उपयोग करने के बारे में है check_plain()और filter_xss()फिर, जैसा कि greggles ने अपनी टिप्पणी में बताया है, आप check_plain()टैग विशेषताओं की सामग्री पर और उदाहरण के लिए ( filter_xss()संपूर्ण HTML टैग पर ) उपयोग कर सकते हैं ।


5
फ़िल्टर_xss का अर्थ html के संपूर्ण टुकड़ों पर उपयोग किया जाना है। यदि आप एक HTML विशेषता पर filter_xss का उपयोग करते हैं तो यह इसे ठीक से फ़िल्टर नहीं करेगा। check_plain का उपयोग html विशेषताएँ सुरक्षित करने के लिए किया जा सकता है। इन कार्यों का उपयोग करने के बारे में अधिक जानकारी के लिए drupalscout.com/knowledge-base/… और drupalscout.com/knowledge-base/… भी देखें ।
greggles 14
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.