2012-01-14 12 views
5

के माध्यम से सुरक्षित बचत को संभालने के लिए सबसे अच्छा अभ्यास मैं कई उपयोगकर्ताओं के लिए एक Asp.Net MVC 3/knockout.js साइट पर काम कर रहा हूं जहां वे अपनी वेबसाइटों के बारे में जानकारी सहेज सकते हैं यहां एक सरल संस्करण है मॉडलअजाक्स पोस्ट एएसपीएनटी एमवीसी 3

class{ 
string Id 
string Name 
string Url 
string Description 
} 

मैं एक बहुत ही उत्तरदायी यूआई बनाना चाहता हूं ताकि सभी लोडिंग बचत आदि अजाक्स के माध्यम से की जाएंगी।

तो परिदृश्य तब होता है जब उपयोगकर्ता ने अपनी सूची में कुछ वेबसाइटें जोड़ दी हैं और एक जेएसएन स्ट्रिंग को सहेजने पर क्लिक को नियंत्रक में एक्शनमेड पर पोस्ट किया जाता है।

सबकुछ ठीक काम करता है।

समस्या है:

मैं उपयोगकर्ता कैसे सुनिश्चित कर सकते आईडी के साथ छेड़छाड़ नहीं की गई है और वास्तव में कुछ अन्य उपयोगकर्ताओं वेबसाइट के बारे में जानकारी की बचत है?

आईडी निश्चित रूप से हिडन है, लेकिन कुछ वेब ज्ञान वाले किसी भी बुरे व्यक्ति को आसानी से आईडी बदल सकती है।

+0

क्या आपने पहले उपयोगकर्ता को प्रमाणित नहीं किया था? क्या आप उपयोगकर्ता पहचान का उपयोग नहीं कर सकते? –

उत्तर

2

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

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

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