2010-03-01 15 views
8

मैं उपयोगकर्ताओं को मार्कडाउन का उपयोग करके समृद्ध टेक्स्ट टिप्पणियां छोड़ने में सक्षम बनाना चाहता हूं। मैंने Reddit पर उपयोग की जाने वाली पुस्तकालयों को स्थापित किया है, लेकिन पिछले साल हुई जावास्क्रिप्ट इंजेक्शन हमले के बारे में चिंतित हूं, खासकर जब से हम अभी भी हमले के बारे में जानकारी के बारे में स्पष्ट नहीं हैं। क्या मुझे अभी भी टिप्पणी सुरक्षा के बारे में चिंतित होना चाहिए? क्या कोई टेस्ट स्ट्रिंग है जो मैं अपने सिस्टम के माध्यम से रेडडिट को कम करने वाली त्रुटियों की जांच के लिए रख सकता हूं?सुरक्षित पायथन मार्कडाउन लाइब्रेरी

उत्तर

4

Python-Markdown - 'मानक' एक या कम - एक 'सुरक्षित मोड' सुविधा है जो HTML टैग से बचती है। यह सभी HTML इंजेक्शन हमलों का मुकाबला करने के लिए पर्याप्त होना चाहिए।

4

reddit अब discount markdown library का उपयोग करता है।

+0

मैं एक शुद्ध पायथन पर्यावरण (Google ऐप इंजन) में काम कर रहा हूं इसलिए मुझे नहीं लगता कि मैं सी पुस्तकालय का उपयोग कर सकता हूं। मैं ऊपर वर्णित लाइब्रेरी स्वेवेंजर को देख रहा हूं, और reddit से filter.py और markdown.py कोड को भी देख रहा हूं। फ्रीविज़्म लाइब्रेरी * इरादा * को किसी अन्य प्रोजेक्ट में गिरा दिया जाना है, जबकि जाहिर है कि आपने reddit कोड को reddit में काम करने का इरादा किया है, जिससे मुझे फ्रीवेसम कोड की तरफ ले जाया जा सके। दूसरी तरफ, मैं इस बारे में उत्सुक हूं कि आपको अपना खुद का फ़िल्टर कोड पहले स्थान पर लिखने की आवश्यकता क्यों है - क्या सार्वजनिक रूप से उपलब्ध पुस्तकालयों में कमजोरियां हैं जिनके बारे में मुझे अवगत होना चाहिए? – MichaelBlume

2

अन्य उत्तरों पायथन-मार्कडाउन के सुरक्षित मोड का उल्लेख करते हैं लेकिन अब इसे हटा दिया गया है। अजगर-Markdown के लेखकों को यह कहते उद्धृत किया गया है:

"सुरक्षित मोड" एक गरीब नाम पसंद है कि हम (पुराने कोड अभी भी हमारे नए संस्करणों के साथ काम करता है) पिछड़े तुलनीयता के लिए उपयोग करने के लिए जारी रखने के लिए किया गया था। यह वास्तव में एक नो-मार्कअप मोड है। दूसरे शब्दों में, यह कच्चे HTML को अस्वीकार करने का एक तरीका है और वास्तव में सुरक्षा की गारंटी नहीं देता है।

अब वे मार्कडाउन आउटपुट को स्वच्छ करने के लिए Bleach जैसे एचटीएमएल सैनिटाइज़र का उपयोग करने की सलाह देते हैं। mdx_bleach एक पाइथन-मार्कडाउन एक्सटेंशन है जो बस यही करता है। अस्वीकरण: मैं इस विस्तार का लेखक हूं।

क्योंकि यह ब्राउज़र खंडों के समान दस्तावेज़ खंडों को पार्स करने के लिए html5lib का उपयोग करता है, ब्लीच अज्ञात हमलों के लिए बेहद लचीला है, नियमित रूप से अभिव्यक्ति-आधारित sanitizers से कहीं अधिक है।

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