2010-06-04 14 views
17

यदि कोई उपयोगकर्ता मेरी जावास्क्रिप्ट फ़ाइल को देखता है, तो फ़ंक्शन की सामग्री कॉपी करता है और AJAX का उपयोग करके मेरे सर्वर से अनुरोध भेजता है तो क्या होता है? और क्या ऐसा होने से ठीक से रक्षा करने का कोई तरीका है?AJAX कॉल सुरक्षित बनाना

उत्तर

15

इसके खिलाफ संरक्षित करने का तरीका किसी भी वेब अनुरोध के विरुद्ध सुरक्षित तरीके से अलग नहीं है। आप इसे बनाते हैं ताकि आपकी साइट को प्रमाणीकरण के कुछ रूप की आवश्यकता हो (यानी उपयोगकर्ताओं को लॉग इन करना होगा) और अगर अनुरोध सही तरीके से प्रमाणीकृत नहीं है तो बात न करें।

आमतौर पर, जब आप AJAX अनुरोध करते हैं, कुकीज़ को अनुरोध के साथ भी भेजा जाता है ताकि आपको उसी प्रमाणीकरण विधि का उपयोग करने में सक्षम होना चाहिए जिसका उपयोग आप अपने AJAX अनुरोधों के साथ अपने नियमित अनुरोधों के लिए करते हैं।

+1

सत्यापित करने के लिए कुकी सत्र आईडी को डेटाबेस में देखें। अहह समझ में आता है। मुझे अभी नहीं पता था कि ब्राउज़र के किसी प्रकार का क्रॉस डोमेन सुरक्षा था। धन्यवाद दोस्त। –

+0

ब्राउज़र किसी अन्य सर्वर/डोमेन से xmlhttprequest को अनुमति नहीं देगा। हालांकि अगर आप जेसन-पी अनुरोधों की इजाजत दे रहे हैं, तो ऐसा हो सकता है, कोई भी ब्राउजर को धोखा दे सकता है, जैसा कि किसी अन्य की तरह अजाक्स के अनुरोधों का इलाज करता है। – Tracker1

9

कोडेका के अनुसार, किसी को अपने स्वयं के अजाक्स क्वेरी को क्राफ्ट करने से रोकने का कोई तरीका नहीं है जो आपके जावास्क्रिप्ट अनुरोध में आपके जैसा है। क्रॉस-डोमेन सुरक्षा आवश्यक रूप से आपकी रक्षा नहीं करेगी, जैसा कि वे चाहें, अगर वे चाहें तो बस अपनी साइट पर किसी पृष्ठ पर जावास्क्रिप्ट को एड्रेस बार में टाइप करें।

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

संक्षेप में, किसी को अनुरोध भेजने से रोकने का कोई तरीका नहीं है, लेकिन आप उन्हें ऐसा कुछ करने से रोक सकते हैं जिसे आप अपने सर्वर पर नहीं करना चाहते हैं।

+4

क्या इसका मतलब यह है कि कोई भी AJAX का उपयोग करके सुरक्षित * और * सामान्यीकृत CRUD आर्किटेक्चर कभी नहीं बना सकता? – dclowd9901

0

यह मानते हुए कि आप प्रमाणीकरण के कुछ फार्म की आवश्यकता है:

मुझे लगता है कि आप अगर अनुरोध एक वास्तविक उपयोगकर्ता से आ रही है जाली के लिए मान्य करने के लिए डेटाबेस सत्र बनाए रख सकते हैं। सत्र आईडी को संग्रहीत करने के लिए एन्क्रिप्टेड कुकीज़ का उपयोग करें, और उपयोगकर्ता को

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