अवलोकन:
मेरी कंपनी ने एक दर-सीमित एपीआई विकसित किया है। हमारा लक्ष्य दुगना है:
- एक: हमारे उत्पाद के चारों ओर एक मजबूत डेवलपर पारिस्थितिकी तंत्र बनाएं।
- बी: हमारे एप्लिकेशन को चलाने के लिए इसका उपयोग करके हमारे एपीआई की शक्ति का प्रदर्शन करें।
स्पष्टता: सभी पर दर-सीमा क्यों?
हम अपने एपीआई को सीमित करते हैं, क्योंकि हम इसे अपने उत्पाद के अतिरिक्त बेचते हैं। हमारे एपीआई के लिए अनाम एक्सेस प्रति घंटे एपीआई कॉल के लिए बहुत कम सीमा है, जबकि हमारे भुगतान किए गए ग्राहकों को प्रति घंटे 1000 कॉल या उससे अधिक की अनुमति है।
समस्या:
डेवलपर इको-सिस्टम के लिए हमारी दर-सीमित एपीआई बहुत अच्छी है, लेकिन हमें डॉगफूड देने के लिए हम इसे समान दर-सीमित करने की अनुमति नहीं दे सकते। हमारे एपीआई के सामने का छोर सभी जावास्क्रिप्ट है, जिससे एपीआई में सीधे अजाक्स कॉल होते हैं।
तो सवाल यह है:
आप एक एपी को कैसे सुरक्षित करते हैं ताकि रेट-लिमिटिंग को हटाया जा सके जहां इस तरह की दर-सीमा को हटाने की प्रक्रिया को आसानी से खराब नहीं किया जा सकता है?
समझाया समाधान (और उन्होंने काम क्यों नहीं किया)
होस्ट हेडर के विरुद्ध रेफरल सत्यापित करें। - त्रुटिपूर्ण क्योंकि रेफरर आसानी से नाटक किया है।
अनुरोध और साझा रहस्य के आधार पर हस्ताक्षर बनाने के लिए HMAC का उपयोग करें , फिर सर्वर पर अनुरोध को सत्यापित करें। - Flawed क्योंकि गुप्त और एल्गोरिथ्म आसानी से सामने के अंत जावास्क्रिप्ट को देखकर निर्धारित किया जाएगा।
अनुरोध को प्रॉक्सी करें और प्रॉक्सी में अनुरोध पर हस्ताक्षर करें - फिर भी त्रुटिपूर्ण है, क्योंकि प्रॉक्सी स्वयं एपीआई को उजागर करता है।
प्रश्न:
मैं वैकल्पिक समाधान प्रस्तुत करने के लिए स्टैक ओवरफ्लो पर शानदार दिमागों की तलाश कर रहा हूं। आप इस समस्या को कैसे हल करेंगे?