2011-03-20 11 views
5

मैं एक समृद्ध टेक्स्ट एडिटर (सीकेएडिटर) का उपयोग कर रहा हूं और मेरे पास उपयोगकर्ताओं को प्रोफ़ाइल बनाने की अनुमति है जो अन्य उपयोगकर्ताओं को प्रदर्शित की जाती हैं।<span style = ...> sanitize के लिए सुरक्षित है?

विशेषताओं CKEditor नियंत्रित कर सकते हैं में से कई लोग वंचित हो रहे हैं जब मैं उन्हें के रूप में प्रदर्शित:

<%= sanitize(profile.body) %> 

मेरा प्रश्न है: पार्स किया जा सकता यह विशेषता 'शैली' अनुमति देने के लिए सुरक्षित है? यह टेक्स्ट रंग, आकार, पृष्ठभूमि रंग, केंद्रित, इंडेंटिंग इत्यादि जैसी चीजों को प्रदर्शित करने की अनुमति देगा। मैं बस यह सुनिश्चित करना चाहता हूं कि यह किसी ऐसे हैकर को एक्सेस करने की अनुमति नहीं देगा जिसे मैं नहीं जानता!

उत्तर

15

क्या विशेषता 'शैली' को पार्स किया जा सकता है?

सं

background-image: url(javascript:[code]); 
width: expression([code]);     /* ie */ 
behavior: url([link to code]);    /* ie */ 
-moz-binding: url([link to code]);   /* ff */ 

नहीं करने के लिए एक असली एक या कुछ और पर एक झूठी लॉगिन प्रपत्र स्थिति की तरह यूआई-स्पूफिंग हमलों का उल्लेख है।

+0

हेक्टेयर! बहुत बहुत धन्यवाद, मुझे एक भावना थी :) – sscirrus

+0

यह भी देखें [सीएसएस इंजेक्शन] (http://guides.rubyonrails.org/security.html#css-injection) – Zabba

+0

यह फिर से दिखाता है कि आप ब्लैकलिस्टिंग से सुरक्षित नहीं हो सकते हैं। यदि आपने सीएसएस में यूआरएल नियमों को ब्लैकलिस्ट करने के बारे में सोचा नहीं था तो आपको अब एक समस्या होगी। आप एक सीएसएस स्ट्रिंग भी आउटपुट नहीं कर सकते हैं, आपको वास्तव में इसे पूरी तरह से पार्स करने की आवश्यकता है और केवल पार्स किए गए डॉम को आउटपुट करना होगा। – usr

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