2012-11-06 10 views
5

मैं सीमित एचटीएमएल टैग की सफेद सूची को अनुमति देना चाहता हूं जो उपयोगकर्ता मेरे मंच में उपयोग कर सकते हैं। तो मैं तो जैसे HTML शोधक द्वारा कॉन्फ़िगर किए गए: स्वीकार किए जाते हैं HTML टैग या की संख्या कम के अपवाद के साथएचटीएमएल शोधक - डिफ़ॉल्ट अनुमति बदलें एचटीएमएल टैग कॉन्फ़िगरेशन

$config = HTMLPurifier_Config::createDefault(); 
$config->set('HTML.Allowed', 'p,a[href|rel|target|title],img[src],span[style],strong,em,ul,ol,li'); 
$purifier = new HTMLPurifier($config); 

क्या मैं है सोच रहा हूँ, एचटीएमएल शोधक की डिफ़ॉल्ट कॉन्फ़िगरेशन अभी भी लागू होता है, मुझे क्या करना मैन्युअल रूप से हर संभव कॉन्फ़िगरेशन पैरामीटर को फिर से सेट करने की आवश्यकता है?

इसके अतिरिक्त, क्या मुझे सुरक्षित रहने के लिए किसी भी तरह से डिफ़ॉल्ट कॉन्फ़िगरेशन को ट्विक करना चाहिए? मैं पूरी एक्सएसएस सुरक्षा चीज़ के लिए नया हूं, एचटीएमएल शोधक के लिए नया और यह नहीं मिला कि मैनुअल ने बहुत सारी 'बुनियादी' युक्तियां और संकेत दिए हैं।

उत्तर

4

एचटीएमएल शोधक डिफ़ॉल्ट और% बदलते HTML.Allowed केवल अनुमति दी टैग सेट को कम करने की गारंटी है द्वारा कोई प्रतिबंध आप उस पर थोपना द्वारा सुरक्षित है। ट्विकिंग कॉन्फ़िगरेशन स्वीकृत टैगसेट को कैसे बदलता है यह देखने के लिए http://htmlpurifier.org/live/smoketests/printDefinition.php देखें।

0

क्यों न केवल एक डोम पार्सर का उपयोग करें और जांचें कि टैग टैग की HTML सूची की सफेद सूची की अनुमति है या नहीं?

इनपुट को एक डोम नोड सूची में कनवर्ट करना आपको सभी डोम नोड्स के माध्यम से लूप करने में सक्षम होना चाहिए और जांचें कि इस प्रकार किस प्रकार की अनुमति है या नहीं। php.net में दूसरों के द्वारा लिखित यह करने के लिए महान उदाहरण हैं जैसे आप इनपुट स्वच्छता समस्या को हल करने का प्रयास कर रहे हैं।

अधिक यहाँ जानकारी: http://php.net/manual/en/class.domdocument.php

+0

पहिया को फिर से क्यों शुरू करें? HTMLPurifier एक परिपक्व उत्पाद है जो यह अच्छी तरह से करता है। – rjmunro

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