क्या HTML आउटपुट को esc_html () और wp_kses () के माध्यम से पारित किया जाना चाहिए?


11

मैं के विभिन्न उपयोगों के बारे में उलझन में हूँ esc_html()और wp_kses()। मैं समझता हूं कि esc_html()विशेष पात्रों को उनकी HTML इकाई में परिवर्तित करता है, और यह wp_kses()अवांछित टैग (जैसे <script>) को हटाता है , लेकिन मुझे यकीन नहीं है कि उन्हें किस संदर्भ में एक साथ या अलग-अलग उपयोग किया जाना चाहिए।

अगर मैं कुछ अविश्वसनीय एचटीएमएल के माध्यम से चलाता हूं esc_html(), तो किसी भी जावास्क्रिप्ट को ब्राउज़र द्वारा प्रदान किए जाने के बजाय सादे पाठ में प्रदर्शित किया जाएगा, इसलिए यह उस बिंदु पर सुरक्षित है, सही है? wp_kses()कच्चे स्क्रिप्ट को प्रदर्शित करने से बचने के लिए इसे चलाने का एकमात्र कारण क्या होगा?

असल में, esc_html()यह सुरक्षित बनाता है, और wp_kses()यह सुंदर बनाता है। क्या वो सही है?

जवाबों:


16

सामान्य नियम, कम से कम, मार्क जैक्विथ द्वारा जासूसी के रूप में , इनपुट पर sanitize, आउटपुट पर एस्केप (इस नियम का प्रारंभिक प्रारंभिक sanitize किया जा रहा है , देर से बच )।

इसलिए: डेटाबेस में अविश्वसनीय डेटा संग्रहीत करते समय सैनिटाइजेशन फ़िल्टर (जैसे kses()परिवार) का उपयोग करें , और टेम्पलेट में अविश्वसनीय डेटा को आउटपुटesc_*() करते समय एस्केप फिल्टर (यानी परिवार) का उपयोग करें


14

जब आप परिणाम में HTML के कुछ सबसेट की अनुमति देना चाहते हैं, तो kses फ़ंक्शन का उपयोग किया जाना चाहिए। उदाहरण के लिए, टिप्पणियाँ उन में बोल्ड, इटैलिक, लिंक और ऐसे कुछ HTML की अनुमति देती हैं।

Html से बचने के लिए esc_html फ़ंक्शन का उपयोग किया जाना चाहिए। कोई भी HTML किसी ऐसी चीज़ में परिवर्तित किए बिना नहीं जाएगी जो किसी ब्राउज़र द्वारा गैर-HTML के रूप में व्याख्या की जाएगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.