REST अनुरोधों को प्राधिकृत करना




authentication http-headers (3)

HTTP डाइजेस्ट प्रमाणीकरण के साथ क्या हुआ है?

मैं एक आरईएसटी सेवा पर काम कर रहा हूं जिसके पास कुछ आवश्यकताएं हैं:

  1. यह सुरक्षित होना चाहिए
  2. उपयोगकर्ता अनुरोधों को बनाने में सक्षम नहीं होना चाहिए

मेरा वर्तमान प्रस्तावित समाधान एक कस्टम प्राधिकरण हैडर है जो इस तरह दिखता है (यह उसी तरह है कि अमेज़न वेब सेवा काम करती है):

Authorization: MYAPI username:signature

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

यह सेवा जो इस सेवा का उपयोग कर रही है वह एक आईफोन एप्लीकेशन है, इसलिए मैं सोच रहा था कि हमारे पास आवेदन में एम्बेडेड सार्वजनिक कुंजी हो सकती है जिसके साथ हम एक अतिरिक्त हस्ताक्षर कर सकते हैं, लेकिन इसका मतलब यह है कि हमें दो हस्ताक्षर होंगे, एक उपयोगकर्ता कुंजी के लिए और एक ऐप कुंजी के लिए?

किसी भी सलाह की काफी सराहना की जाएगी, मैं यह अधिकार पहली बार प्राप्त करना चाहता हूं।


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

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






rest-security