मैं अपने मौजूदा RadEditor की बजाय अपने प्रोजेक्ट में डब्लूएमडी का उपयोग कर रहा हूं। मैं डेटा को स्टोर और पुनर्प्राप्त करने के तरीके पर कुछ पोस्ट पढ़ रहा हूं, और मैं यह सुनिश्चित करना चाहता हूं कि आगे बढ़ने से पहले मुझे अवधारणा सही हो।एसक्यूएल सर्वर में डब्लूएमडी इनपुट/मार्कडाउन स्टोर करने और बाद में प्रदर्शित करने का सबसे अच्छा तरीका क्या है?
यदि मेरा शोध सही है, तो मुझे यह करना चाहिए कि मुझे क्या करना चाहिए।
- मैं संपादक डेटा दो बार (एक बार HTML के रूप में और एक बार Markdown के रूप में) संग्रहीत करना चाहिए
- मैं इसे भंडारण से पहले एक Whitelist के माध्यम से एचटीएमएल चलाना चाहिए।
- मुझे एचटीएमएल को एंटीएक्सएसएस के माध्यम से बाहर चला जाना चाहिए (प्रदर्शित करने से पहले)
- मुझे संपादन के लिए मार्कडाउन को दोबारा बदलने के लिए केवल मार्कडाउन डेटा का उपयोग करना चाहिए।
किसी को भी पुष्टि कर सकते हैं या यदि यह सही है इनकार करते हैं, और यह भी विषय पर किसी भी उपयोगी इनपुट जोड़ने?
संदर्भ
Reformat my code: Sanitize Html
StackOverflow: how do you store the markdown using wmd in asp net
StackOverflow: sanitize html before storing in the db or before rendering antixss library
StackOverflow: store html entities in database or convert when retrieved
दो प्रश्न ... 1) क्यों आउटपुट पर sanitize और इनपुट नहीं? और 2) ये एमवीसी "सर्वोत्तम प्रथाओं 'क्या हैं ... पढ़ने के लिए कोई आलेख है? –
@rock आप आउटपुट पर sanitize क्योंकि आप डेटाबेस में उपयोगकर्ता क्या डालते हैं उलझाना नहीं चाहते हैं। आउटपुट पर sanitizing द्वारा आप संरक्षित यदि आप कभी भी इनपुट को स्वच्छ करने के लिए उपयोग कर रहे हैं, तो मूल पाठ को बदलने का निर्णय लेते हैं। रॉब कॉनरी, स्कॉट हंसेलमैन, फिल हैक और स्कॉट गुथरी द्वारा "एएसपी.नेट एमवीसी 1.0" देखें। इसके अलावा, फिल का ब्लॉग , http://haacked.com एमवीसी वस्तुओं के लिए एक महान संसाधन है। –
तो यदि कोई उपयोगकर्ता आपके डेटाबेस में जावास्क्रिप्ट या दुर्भावनापूर्ण बकवास जैसी सामग्री सबमिट करता है तो आप चिंतित नहीं हैं? इसके अलावा, इनपुट कम सिस्टम लोड पर एक बार sanitizing नहीं है प्रत्येक आउटपुट पर sanitizing? –