2010-04-09 16 views
7

मैं .NET Framework में डब्ल्यूपीएफ के लिए वास्तव में नया हूं (रास्ते से बाहर निकलें)। मैं एक एप्लीकेशन लिख रहा हूं जहां इंटरफ़ेस बस .xaml (इस समय एक पृष्ठ तत्व) फ़ाइलों को फ्रेम में लोड करके और फिर आवश्यकतानुसार नामों के माध्यम से नियंत्रण मैप करके बहुत अनुकूलन योग्य है। विचार यह है कि उन लोगों का एक समुदाय है जो खाल बनाने में रूचि रखते हैं, मेरे आवेदन को त्वचा हालांकि वे चाहते हैं (विनम्प की तरह)।डब्ल्यूपीएफ त्वचा स्किनिंग सुरक्षा चिंता

अब सवाल उठता है, एक्सएमएल ज्ञान की कमी के कारण, क्या यह दुर्भावनापूर्ण Xaml पृष्ठों को बनाना संभव है जब डाउनलोड और उपयोग किए जाने पर अन्य एम्बेडेड इफ्रेम या अन्य तत्व हो सकते हैं जो HTML को एम्बेड कर सकते हैं या दुर्भावनापूर्ण सामग्री के साथ दूरस्थ वेबपृष्ठों को कॉल कर सकते हैं ? मेरा मानना ​​है कि यह मामला हो सकता है।

यदि ऐसा है तो मैं दो विकल्प; या तो मेरे पास एक स्वचालित प्रक्रिया है जो डाउनलोड की अनुमति देने से पहले इसके तत्वों की जांच करके इन प्रकार की एक्सएमएल फाइलों को हटा सकती है (जो मुझे लगता है कि सबसे कठिन होगा) या डाउनलोड करने से पहले मानव समीक्षा करें। क्या ऐसे विकल्प हैं जिनसे मुझे अनजान है जो इस पूरी प्रक्रिया को बहुत आसान बना सकता है?

उत्तर

3

आप बस किसी भी सावधानियों वहाँ दो संभावित चिंताएं हैं लेने के बिना XAML लोड हैं:

  1. XAML का उपयोग कर अपने वस्तुओं पर तरीकों कॉल कर सकते हैं "एक्स: स्टेटिक" और "ObjectDataSource"
  2. XAML कर सकते हैं मनमाने ढंग से Uris से HTML और छवियों को शामिल है, इसलिए यदि वहाँ एचटीएमएल प्रसंस्करण या छवि प्रसंस्करण कोड में एक बग है, मैलवेयर यह

का फायदा उठाने सकता है समाधान दोहरा है:

  1. उन कक्षाओं को सीमित करें जिन्हें तत्काल किया जा सकता है।
  2. यूरी गुणों की सेटिंग केवल संबंधित स्रोतों को प्रतिबंधित करें। तत्व के नाम, संलग्न-संपत्ति के नाम पर, मार्कअप एक्सटेंशन, के प्रकार के "प्रकार" गुण:

कक्षाएं कि

instantiated जा सकती है, सीमित सौभाग्य से वहाँ केवल स्थानों प्रकार प्रदर्शित हो सकता है की एक सीमित संख्या है। किसी भी प्रकार के मानक प्रकार एक्सटेंशन को अस्वीकार करके, सभी उपयोगों के लिए स्कैन करना और XAML में संदर्भित प्रकारों की पूरी सूची बनाई गई है। यह ज्ञात-सुरक्षित प्रकारों की श्वेतसूची के खिलाफ जांच की जा सकती है। किसी भी प्रकार का संदर्भ दिया गया है जो सुरक्षित सूची पर नहीं है क्योंकि एक्सएएमएल को खारिज कर दिया जा सकता है।

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

उरी गुण

की स्थापना पर सीमित करने से एक बार फिर XAML के कठोर संरचना हमारी सहायता करने के लिए आता है। इसे आसानी से स्कैन किया जा सकता है ताकि प्रत्येक प्रॉपर्टी सेटर को निर्धारित किया जा सके और मूल्य या बाध्यकारी सेट किया जा सके (शैलियों और संलग्न गुणों को न भूलें)। एक पैक उरी को छोड़कर किसी भी पूर्ण उरी का उपयोग किया जाता है तो एक्सएएमएल को खारिज कर दिया जा सकता है। एक मार्कअप एक्सटेंशन का उपयोग कर उरी सेट करने के प्रयासों को भी खारिज कर दिया जाएगा।

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