2010-07-03 7 views
9

इनपुट सत्यापन का सामान्य अभ्यास क्या है? दूसरे शब्दों में क्या आप सर्वर-साइड पर या दोनों तरफ क्लाइंट-साइड पर इनपुट सत्यापन की जांच करते हैं?एएसपी.नेट में इनपुट सत्यापन के लिए सर्वोत्तम अभ्यास?

इसके अलावा, यदि प्रदर्शन मेरे लिए महत्वपूर्ण है, तो क्या क्लाइंट-साइड इनपुट सत्यापन मेरी वेबसाइट के लिए पर्याप्त सुरक्षा जोखिम पेश किए बिना पर्याप्त होगा?

उत्तर

11

हमेशा कम से कम सर्वर पक्ष सत्यापन करें। यदि आप उपयोगकर्ताओं के अनुभव को बेहतर बनाना चाहते हैं, तो क्लाइंट साइड सत्यापन अच्छा हो सकता है। यह आपको सर्वर को अनावश्यक अनुरोधों से बचने की अनुमति देता है।

केवल क्लाइंट साइड सत्यापन पर्याप्त नहीं है और उदाहरण के लिए जावास्क्रिप्ट को अक्षम करके आसानी से बाईपास किया जा सकता है।

मैं आपको हमेशा सर्वर साइड सत्यापन जोड़कर शुरू करने की सलाह दूंगा और एक बार जब आप इसका परीक्षण कर लेंगे, तो आप क्लाइंट साइड सत्यापन सक्षम कर सकते हैं।

2

आम तौर पर दोनों तरफ। ग्राहक पक्ष को आसानी से जानबूझकर या निर्दोष रूप से छोड़ दिया जा सकता है (नोस्क्रिप्ट के प्रसार के साथ) लेकिन प्रयोज्य कारणों के लिए लायक है।

यह एक सुरक्षा जोखिम प्रस्तुत करता है या नहीं। आप उपयोगकर्ता इनपुट का उपयोग कर रहे हैं और आपके सत्यापन की वर्तमान प्रकृति क्या है?

यदि यह सिर्फ यह जांच रहा है कि किसी ने किसी रूप में अनिवार्य फ़ील्ड भर दिए हैं तो शायद यह संभावना नहीं है कि सुरक्षा जोखिम होगा।

1

सर्वर-साइड सत्यापन पर ऐसा करने की आवश्यकता नहीं है, क्योंकि क्ली-साइड सत्यापन को आसानी से बाईपास किया जा सकता है।

यदि आप एक btter उपयोगकर्ता की उपस्थिति चाहते हैं, तो क्लाइंट-साइड सत्यापन भी उपयोग करें। यह प्रदर्शन को भी बढ़ाता है, क्योंकि यह सर्वर पर HTTP अनुरोधों की संख्या को कम करता है, क्योंकि अमान्य रूप सर्वर पर नहीं भेजे जाएंगे।

4

क्लाइंट साइड वैलिडेशन पर निर्भर नहीं है !!!
यह सिर्फ ईमानदार उपयोगकर्ता के लिए है। बेईमान उपयोगकर्ता किसी भी समय इसके आसपास नहीं हो सकता है।

अगर मैंने जावास्क्रिप्ट बंद कर दिया है, तो मैं आपके ऐप को छेड़छाड़ कर सकता हूं। हमेशा प्रपत्र

''# VB 
If Page.isValid Then 
    ''# submit your data 
End If 

// C# 
if(Page.isValid) { 
    // submit your data 
} 

में सर्वर साइड सत्यापन डाल ... यह नहीं है कि कठिन

वेब MVC

''# VB 
If ModelState.IsValid Then 
    ''# submit your data 
End If 

// C# 
if(ModelState.IsValid) { 
    // submit your data 
} 

अपने सर्वर साइड सत्यापन काम करने लगे, तो आगे जाना है और ग्राहक साइड सत्यापन जोड़ें। यह उपयोगकर्ता के लिए बेहतर अनुभव देगा

1

सबसे आम क्लाइंट और सर्वर दोनों पक्ष सत्यापन दोनों का उपयोग कर रहा है।

केवल क्लाइंट-साइड इनपुट सत्यापन मेरी वेबसाइट के लिए कोई सुरक्षा जोखिम पेश किए बिना पर्याप्त होगा?

नहीं, आपको सर्वर पक्ष सत्यापन का भी उपयोग करना चाहिए। क्लाइंट सत्यापन को हटाने के लिए यह बहुत आसान है (उदाहरण के लिए) फायरबग। स्पष्ट रूप से क्लाइंट साइड सत्यापन हटाने के बाद सर्वर पर कोई डेटा भेज सकता है। तो सर्वर साइड सत्यापन भी दृढ़ता से जरूरी है।

4

एक बात है कि मैं सलाह देते हैं उपयोग कर रहा है FluentValidation, xVal और JQuery एक साथ ग्राहक और सर्वर साइड सत्यापन वही नियम के आधार पर प्रदर्शन करने के लिए होगा।

FluentValidation एक नियम-आधारित ढांचा है जो सर्वर की ओर .NET ऑब्जेक्ट को मान्य करता है। यह xVal के लिए नियम प्रदाता के साथ आता है, जो एक और ढांचा है जो आपको सर्वर पक्ष और क्लाइंट साइड सत्यापन फ्रेमवर्क की अपनी पसंद को जोड़ने की अनुमति देता है। यह क्लाइंट साइड

पर JQuery मान्यताओं को उत्पन्न करने का समर्थन करता है
संबंधित मुद्दे