2009-12-11 12 views
6

मैं खुद को एक्सएसएस हमलों के खिलाफ php फ़ंक्शन htmlentities() का उपयोग करने की सुरक्षा और HTMLspecialchars जैसे संबंधित कार्यों के बारे में पूछ रहा था।क्या एचटीएमएल() बुलेट प्रूफ है?

बहुत बहुत शुक्रिया :)

उत्तर

8

आप स्पष्ट रूप से उचित इनकोडिंग निर्दिष्ट करना होगा (उदाहरण के लिए: UTF-8), क्रिस कैसे कोड इंजेक्षन करने के लिए उचित एन्कोडिंग के बिना भी बुला htmlentities पर एक पोस्ट किया था।

http://shiflett.org/blog/2005/dec/google-xss-example

+0

धन्यवाद बहुत कुछ है जो वास्तव में सबूत की तलाश में था :) मुझे एन्कोडिंग मुद्दों का अध्ययन करना है। क्या आप इसके बारे में कुछ अच्छे दस्तावेज जानते हैं? – fatmatto

+1

मैं आपको जीमेल संपर्क xss के असली दुनिया के उदाहरण को पढ़ने के लिए प्रोत्साहित करता हूं, और शोषण को पढ़ता हूं, जो नीचे दिए गए पोस्ट में डाउनलोड करने योग्य है, उम्मीद है कि आपको सुरक्षित कोड लिखने के बारे में कुछ विचार दिए जाएंगे: http://uneasysilence.com/ संग्रह/2007/01/9025/ और यहां एक धोखा शीट है जो आपको उपयोगी मिल सकती है: http://openmya.hacker.jp/hasegawa/security/utf7cs.html –

+0

बहुत बहुत धन्यवाद: डी – fatmatto

4

यह बुलेट प्रूफ, यह आप 100% की बचत होती है कभी नहीं नहीं है। आपको याद रखना चाहिए कि जब सुरक्षा की बात आती है, तो डेवलपर इसके लिए जिम्मेदार होता है। भाषाएं सुरक्षा कार्यों का बहुत अच्छा सौदा प्रदान करती हैं और इसलिए डेवलपर पर निर्भर करता है कि वे अपनी साइट को कैसे सुरक्षित करते हैं चाहे वे श्वेतसूची दृष्टिकोण या ब्लैकलिस्ट दृष्टिकोण का उपयोग करें। यदि htmlentities सभी थे, तो कोडिनेटर, कोहाना और अधिक जैसे ढांचे अपने स्वयं के महान सुरक्षा कार्यों के साथ नहीं आएंगे।

सबसे महत्वपूर्ण बात यह है कि उपयोगकर्ता से आने वाले किसी भी इनपुट को स्वच्छ और फ़िल्टर करना सबसे महत्वपूर्ण बात है।

0

नहीं, htmlspecialchars और htmlentities जैसे कार्य क्रॉस-साइट स्क्रिप्टिंग के सभी मामलों के विरुद्ध सुरक्षा नहीं करते हैं।

मामले जिसमें इन समारोह में मदद नहीं करेगा कर रहे हैं:

  • डेटा का फायदा उठाने के सर्वर (डोम आधारित XSS) तक पहुंच नहीं है।
  • शोषण डेटा को केवल HTML संदर्भ में व्याख्या नहीं किया गया है और इन कार्यों द्वारा एन्कोड किए गए विशेष वर्ण या तो not required या not the only ones that are special in the corresponding context हैं।

विशेष रूप से बाद का कारण अक्सर याद किया जाता है। OWASP’s XSS Prevention Cheat Sheet में कई उदाहरण हैं जहां एक HTML दस्तावेज़ में इंजेक्शन हो सकता है। लेकिन जावास्क्रिप्ट कोड इंजेक्ट और निष्पादित करने के लिए सभी को HTML विशेष वर्णों की आवश्यकता नहीं है।

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