मुझे एक "विजेट" डिजाइन करना होगा, एक स्क्रिप्ट जो कुछ यूआई प्रदर्शित करने और हमारे एपीआई पर कॉल करने के लिए साझेदार अपनी वेबसाइटों में एम्बेड करेगी।
मूल रूप से यह हमारे एपीआई कॉल में प्रदान किए गए कुछ आईडी के आधार पर इन साइटों पर हमारे डेटा को प्रदर्शित करेगा। हम जिस चीज से बचना चाहते हैं, वह है एपीआई का दुरुपयोग करना और इसका उपयोग करके हमारी सूची की संपूर्णता को खत्म करना।
प्रत्येक स्क्रिप्ट जो हमारी स्क्रिप्ट को एम्बेड करती है, उसे एक सार्वजनिक कुंजी दी जाएगी जिसे एपीआई कॉल करते समय प्रदान किया जाना चाहिए। स्क्रिप्ट लोड करते समय इस कुंजी को जोड़ने के लिए उनसे एक विचार पूछा जाएगा, जैसे:
<script src="//initrode.com/widget/loader.js?key=xxxx"></script>
इस तरह से स्क्रिप्ट के लिए अनुरोध कुंजी / स्रोत आईपी जोड़ी को पंजीकृत करने के लिए इस्तेमाल किया जा सकता है, और बाद में एपीआई कॉल का जवाब केवल तभी दिया जा सकता है जब कुंजी / आईपी जोड़ी एक पंजीकृत (एक सीमित जीवनकाल के साथ, और प्रति दिन अनुरोधों पर एक सीमा) से मेल खाती है।
मुझे यकीन नहीं है कि यह एक अच्छा विचार है क्योंकि यह स्पष्ट रूप से obfuscation के माध्यम से सुरक्षा है (कोई स्क्रिप्ट को फिर से लोड करना पूरी तरह से इसे बायपास करेगा); लेकिन मुझे पहुँच को प्रतिबंधित करने का कोई अन्य तरीका नहीं दिखता है। मैं प्रत्येक उपयोगकर्ता को केवल भागीदारों के लिए एक अद्वितीय कुंजी प्रदान नहीं कर सकता। मैं एक निजी-कुंजी प्रणाली का उपयोग नहीं कर सकता क्योंकि सभी कोड किसी के लिए उपलब्ध होंगे। यह मूल रूप से एक सार्वजनिक एपीआई तक पहुंच को सीमित कर रहा है, यानी इसकी परिभाषा में विरोधाभासी।
आप इस समाधान के बारे में क्या सोचते हैं, और आप इन बाधाओं के साथ क्या करेंगे?