2009-08-12 17 views
8

मेरी पोस्ट इकाई के लिए मैं डेटाबेस में HTML और मार्कडाउन दोनों संग्रहीत करता हूं (HTML को मार्कडाउन से परिवर्तित किया जाता है)। एचटीएमएल संपादन क्षमता (डब्लूएमडी के साथ) के लिए पृष्ठ और मार्कडाउन पर प्रतिपादन के लिए है। मैं डीबी को स्टोर करने से पहले HTML को sanitize। प्रश्न यह है: क्या मुझे मार्कडाउन को भी स्वच्छ करना चाहिए? या यह xss-safe है अगर मैं इसे केवल wmd-editor को पास करता हूं?क्या मुझे मार्कडाउन को स्वच्छ करना चाहिए?

उत्तर

13

मार्कडाउन में मनमाना HTML हो सकता है; यह स्पष्ट रूप से अनुमति है। तो आपको वेब क्लाइंट को भेजने से पहले, इसे भी स्वच्छ करना चाहिए, या कम से कम इसे एचटीएमएल में परिवर्तित करने के परिणाम को स्वच्छ करना चाहिए।

मुझे याद है कि शुरुआती दिनों में एसओ के साथ संभवतः शोषण में से एक यह है कि आप जेएस सामग्री को मार्कडाउन में डाल सकते हैं, और जो भी आपका लेख संपादित करता है, वह पूर्वावलोकन में उन स्क्रिप्ट को ट्रिगर करेगा। मुझे नहीं पता कि यह अभी तक तय है या नहीं।

3

मैंने देखा है कि आप "डीबी को संग्रहीत करने से पहले HTML को स्वच्छ करें" और अगली वाक्य में xss-safe की बात करें। उन इनपुट सत्यापन के दो विभिन्न पहलुओं हैं, और आप उन्हें मिश्रण चाहिए नहीं, और अपने डिजाइन में दोनों का पता:

  • आप सुरक्षित रूप से, डेटाबेस में किसी भी उपयोगकर्ता इनपुट डालने यानी यकीन है कि इनपुट ठीक से बच रहा है बनाना चाहिए (mysql_real_escape_string, संग्रहित प्रक्रियाओं, ORM पुस्तकालयों, आदि)

  • आप चाहिए सुरक्षित रूप से (सामूहिक नरसंहार के हथियारों के लिए इनपुट सहित), को हटाने या किसी दृश्यों कि XSS शोषण और अन्य वैमनस्य में बदल सकता है भागने HTML/जे एस के लिए उत्पादन।

प्रश्न के रूप में, मैं क्रिस के साथ सहमत हूँ - के बाद से Markdown एचटीएमएल शामिल कर सकते हैं, यह स्वच्छ होना चाहिए।

0

बस एक अतिरिक्त:
This question सामूहिक नरसंहार के हथियारों

का उपयोग कर से आया
संबंधित मुद्दे