2010-03-05 16 views
5

मैंने सिल्वरलाइट कोड को छिपाने पर कुछ पोस्ट पढ़ी हैं। मुख्य निष्कर्ष यह था कि आप इसे खराब कर सकते हैं, लेकिन आप वास्तव में इसे छुपा नहीं सकते हैं, इसलिए सर्वर पर सुरक्षित चीजें पूरी की जानी चाहिए। लेकिन फिर, कोई भी फिडलर के माध्यम से देख सकता है कि किस प्रकार का डेटा किसी विशेष webservice पर पोस्ट किया जाता है। उदाहरण के लिए, वे देख सकते हैं कि मैं UpdateCustomer.asmx को कॉल कर रहा हूं। और यदि वे करते हैं, तो मैं उन्हें एएसएमएक्स को कॉल करने से रोकने के लिए क्या कर सकता हूं? क्या इस विधि को कॉल करने के लिए केवल 'मेरे Silverlight ऐप' को अनुमति देने का कोई तरीका है?मेरे सर्वर विधियों को सुरक्षित करने के लिए कैसे करें

उत्तर

0

मैं अगर तुम सच में पागल होना चाहते थे, तो आप एक वेब सेवा समाप्ति बिंदु के माध्यम से अपने क्लाइंट अनुप्रयोग से सभी कॉल्स मार्शल और पेलोड एन्क्रिप्ट सकता है ... कुछ की तरह लगता है:

  • ग्राहक आवेदन givemeatoken endpoint हिट " .asmx onlyservice.asmx "
  • सर्वर कुछ कुंजी टोकन
  • क्लाइंट टोकन कहा का उपयोग कर सभी कॉल्स एन्क्रिप्ट करता है, एक समाप्ति बिंदु को उन्हें गुजर उत्पन्न करता है" "
  • सर्वर टोकन का उपयोग कॉल की पेलोड decrypts, और मार्गों कॉल करने के लिए 'असली' वेब सेवाएं।
  • सर्वर कॉल के परिणाम पुनर्प्राप्त करता है, टोकन का उपयोग करके पुनः एन्क्रिप्ट करता है, और क्लाइंट
  • क्लाइंट डिक्रिप्ट परिणाम देता है और उसे क्या करने की आवश्यकता होती है।

लेकिन यह सिर्फ पागल बात है .... और तरह का व्यर्थ है, क्योंकि आप सिल्वरलाइट कोड को इंजीनियर करने के लिए खुद को "वास्तविक" सेवाओं के बारे में पता लगाने के लिए उलटा कर सकते हैं। यदि आप वास्तव में अपने ऐप को सुरक्षित करना चाहते हैं, तो प्रमाणीकरण का उपयोग करें; क्लाइंट साइड और सर्वर दोनों तरफ (यानी, सेवाओं को कॉल करने के लिए किसी प्रकार की प्रमाणीकरण टिकट की आवश्यकता होती है)

+0

धन्यवाद, मैं प्रमाणीकरण तंत्र को लागू करूंगा। – Michel

1

नहीं। आपके द्वारा उपयोग किए जाने वाले प्रमाणीकरण प्रमाण-पत्र को चुरा लेने के लिए कोई भी हमेशा आपके सिल्वरलाइट एप्लिकेशन को इंजीनियर कर सकता है। आप इस रिवर्स इंजीनियरिंग प्रक्रिया को अन्यथा से अधिक कठिन बना सकते हैं, लेकिन आप इसे असंभव नहीं बना सकते हैं।

कोई समस्या क्यों है यदि कोई कस्टम क्लाइंट से आपका यूआरएल एक्सेस करता है? आप उपयोगकर्ता प्रमाणीकृत कर रहे हैं, है ना?

+0

नहीं, इस मामले में उपयोगकर्ता प्रमाणित नहीं है। – Michel

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