2011-03-08 43 views
7

मैं एक ऐसा पृष्ठ बना रहा हूं जो पृष्ठ को रीफ्रेश किए बिना एकाधिक AJAX फ़ॉर्म पोस्ट बनाता है।एएसपी.नेट एमवीसी एचटीएमएल। एंटीफॉर्गेरी टोकन() एक पेज से कई AJAX अनुरोधों के साथ

मैं सीएसआरएफ हमलों के खिलाफ फॉर्म को सुरक्षित करने के लिए एएसपी.नेट एमवीसी HTML.AntiForgeryToken() सहायक का उपयोग करना चाहता हूं। मुझे लगता है कि पेज पर प्रत्येक फॉर्म एक ही टोकन साझा कर सकता है, लेकिन क्या यह एक ही टोकन के साथ कई अनुरोधों की अनुमति देगा? यदि नहीं है तो फॉर्म को सुरक्षित करने के लिए कोई नया टोकन या कोई अन्य तरीका प्राप्त करने का कोई तरीका है?

उत्तर

7

आप एक ही टोकन साझा कर सकते हैं। बेशक, एक सामान्य नियम के रूप में, आपके अजाक्स कॉल को एक एकीकृत विधि में लपेटने की अत्यधिक अनुशंसा की जाती है जो अनुरोध के लिए सीएसआरएफ टोकन को जोड़ती है (चाहे वह सुरक्षित हो या पोस्ट करें हालांकि पोस्ट सुरक्षित है और आर्किटेक्चरल परिप्रेक्ष्य से कहीं अधिक सही है), इसलिए जब आप अजाक्स को आप केवल व्यापार इनपुट मानों पर ध्यान केंद्रित करते हैं, और सीएसआरएफ के बारे में चिंता करने की आवश्यकता नहीं है।

संपादित करें: पढ़ें की यह अच्छा पोस्ट & नमूना ऑटो लपेटकर CSRF संरक्षण jQuery 1.5 उपयोग करने के लिए और ऊपर अजाक्स: http://www.codethinked.com/aspnet-mvc-ajax-csrf-protection-with-jquery-15

1

मैं इन लेखों को पढ़ने के लिए सुझाव देगा:

http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/

http://msmvps.com/blogs/luisabreu/archive/2009/02/09/the-mvc-platform-the-new-anti-forgery-token.aspx

तो अपने सवाल का जवाब देने - यह आप कैसे कर रहे हैं पर निर्भर करेगा। जब आप टोकन को एम्बेड करने के लिए AntiForgeryToken का उपयोग करते हैं, तो यह छिपे हुए क्षेत्र के साथ-साथ कुकी में (नया) टोकन उत्पन्न करेगा। और सीआरएसएफ हमले की तुलना करके उनका पता लगाया गया है बशर्ते आपने ValidateAntiForgeryToken विशेषता के साथ अपनी क्रिया विधि (POST के लिए) को चिह्नित किया हो। अब, यह महत्वपूर्ण है कि प्रत्येक अनुरोध के लिए नया टोकन बनाया जाना चाहिए। तो जब आप AJAX फॉर्म पोस्ट करते हैं, तो कुकी को नए टोकन मान के साथ सेट किया जा रहा है और आपको यह सुनिश्चित करना होगा कि AJAX प्रतिक्रिया में नया टोकन फ़ील्ड होगा और आप इसे ब्राउज़र पक्ष पर अपडेट करेंगे। मैं यह भी सुझाव दूंगा कि आप बेहतर सुरक्षा के लिए विभिन्न रूपों के लिए अलग-अलग नमक का उपयोग करें।

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