2011-09-01 10 views
7

मैं PHP में एक टिप्पणी पार्सिंग फ़ंक्शन लिख रहा हूं।मुझे बीबीसीओड का उपयोग क्यों करना चाहिए, लेकिन टिप्पणी फॉर्म में एचटीएमएल क्यों नहीं?

चूंकि बीबीसीओडी वास्तविक मार्कअप भाषा नहीं है, इसलिए मुझे लेखन शैली कभी पसंद नहीं आया।
तो मैं आगंतुकों को टिप्पणी फ़ॉर्म में मूल HTML कोड का उपयोग करने की क्षमता प्रदान कर रहा हूं।
और पोस्ट करते समय, PHP अस्वीकृत और अमान्य टैग/विशेषताओं की जांच करेगा, और या तो उन्हें प्रतिस्थापित या हटा देगा।

मेरा मानना ​​है कि यह वही नौकरी और आउटपुट बिल्कुल बीबीसीओडी के समान ही करता है।

यदि यह सच है, तो बीबीसीओडी क्यों हैं? क्या बीबीकोड के पास एचटीएमएल पर कोई फायदे हैं?

अद्यतन

के रूप में मोनोक्रोम जवाब

यदि आपको विश्वास है कि आपके HTML फिल्टर काफी सुरक्षित है कर रहे हैं, तो आप हालांकि

अच्छी तरह से ठीक हो सकता है, मुझे विश्वास है लेखन नहीं कर रहा हूँ फिल्टर अपने आप को, लेकिन वहाँ बाहर पीएचपी सरल HTML डोम पार्सर, एचटीएमएल शोधक, htmLawed की तरह वहाँ कुछ टॉप रेटेड फिल्टर रहे हैं ...

बीबीसीओडी यूबीबी द्वारा विकसित किया गया है और अभी भी व्यापक रूप से उपयोग किया जा रहा है, जैसे phpbb।

UBB/phpBB से डेवलपर्स के लिए अपने कौशल एक आदर्श एचटीएमएल फिल्टर लिखने के बारे में आश्वस्त नहीं हैं? (मैं नहीं लगता है)

इसके अलावा, Markdown कि StackOverflow का उपयोग करते हुए की तरह ... अगर HTML + पार्सर काम करता है, यही कारण है कि एक और 'भाषा' वैसे भी आविष्कार? (सिवाय कुछ बिट्स ... बचाने के लिए)

+2

मार्कडाउन नया मार्कअप है। – BoltClock

+1

मुझे लगता है कि एचटीएमएल मार्कअप का आसानी से शोषण किया जाता है और आपकी जांच कामकाज है। जब सुरक्षा छेद खोजने की बात आती है तो हैकर्स काफी सरल हो सकते हैं;) – knittl

+0

@knittl तो यह मेरे बारे में/PHP वीएस हैकर्स है। अच्छा, शायद मुझे जोड़ा जाना चाहिए "अगर ... मेरी पार्सिंग प्रणाली अच्छी तरह से लिखा गया है/लिखा गया है।" मैं वास्तव में एक HTML- अनुमत-टिप्पणी-फ़ॉर्म के खिलाफ एक हैकिंग उदाहरण देखना चाहता हूं। – Jon

उत्तर

2

BBCode मुद्दा अपने HTML फिल्टर कीड़े हो सकता है इतना है कि टिप्पणीकार कोड वह टिप्पणी करने वाला नहीं है टिप्पणी कर सकते हैं दूर करता है। यदि आपको विश्वास है कि आपका HTML फ़िल्टर पर्याप्त सुरक्षित है, तो आपको ठीक होना चाहिए।

एक और समस्या यह है कि HTML टिप्पणियां आपके लेआउट को तोड़ सकती हैं, उदा। जब टिप्पणीकर्ता एक ही बंद </div> या उस तरह कुछ डालता है।

+4

नहीं, यह नहीं करता है। बीबीसीओडी पार्सर में ऐसी बग हो सकती हैं जो एक्सएसएस को भी अनुमति दें। श्वेतसूची टिप्पणी के लिए – Quentin

4

यह मुख्य लाभ अवांछित कोड इंजेक्शन की रोकथाम है। यही कारण है कि मैं बीबीसीओडी या मार्कडाउन जैसे कुछ का उपयोग करूंगा।

कम से कम आप और की अनुमति एचटीएमएल-टैग एक सफेद सूची के साथ काम करना चाहिए काली सूची में डाले के साथ नहीं।

+0

+1। –

+3

* प्रत्येक एकल (बॉडी) टैग * स्क्रिप्ट को इसके गुणों से जुड़ा हो सकता है उदा। अंदाज। आपको एटीआर नामों की श्वेतसूची की भी आवश्यकता होगी। – Cheekysoft

1

बीबीसीओडी लोकप्रिय हो गया क्योंकि उपयोगकर्ता को एक्सएसएस को रोकने की कोशिश करते समय एचटीएमएल तक सीमित पहुंच की इजाजत दी गई। बीबीसीओड वहां से पहले लोकप्रिय हो गया जहां HTML Purifier जैसे समाधान। सभी हकीकत में बीबीसीओडी और एचटीएमएल शोधक की अपनी सुरक्षा समस्याएं हैं। यह सिर्फ बीबीसीओड इस समस्या का एक और आसान समाधान था।

0

बीबीकोड का उपयोग करें + सभी बाएं टैग को htmlspecialchar में कनवर्ट करें मेरे लिए पूरी तरह से एक्सएसएस मुक्त है। (जब तक BBcode पार्सर वास्तव में सुपर बुरा है डिजाइन)

अंत में, उन दोनों को एक ही लक्ष्य तक पहुँचने। वर्तमान में मैं बीबीकोड का चयन करता हूं क्योंकि एचटीएमएल विशेषकर के साथ बाएं टैग को बदलने के बजाय HTMLpurifier ऑटो स्ट्रिप टैग। कम से कम डेमो में मुझे बाएं टैग को रखने वाले फ़ंक्शन को नहीं देखा गया था।

तो कुछ समस्या है क्योंकि हम उपयोगकर्ता को & लेफ्ट लिखना चाहते हैं; ऑटो की बजाय इसे < में परिवर्तित करें। और सभी डेटा को प्रमाणित करने के लिए आलस्य का कुछ और मुद्दा।

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