2016-07-01 3 views
9

https://developers.google.com/maps/documentation/javascript/tutorial#HTML5 के अनुसार, ऐसा लगता है कि मैं अपने एचटीएमएल में निम्न टैग जोड़ सकता हूं और मानचित्र जेएस एपीआई का उपयोग शुरू कर सकता हूं।क्या Google मानचित्र जेएस एपीआई का उपयोग करते समय मुझे एपीआई कुंजी छिपाने की ज़रूरत है? यदि हां, तो कैसे?

<script async defer 
     src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> 
</script> 

लेकिन यह मेरी एपीआई कुंजी प्रकट करेगा।

Google पर खोज करने और स्टैक ओवरफ्लो पर उत्तर देने के बाद, मुझे लगता है कि शायद इस API कुंजी को छिपाने की कोई आवश्यकता नहीं है। मैं तो बस, के रूप में https://stackoverflow.com/a/2256312/1316649

में विस्तार से बताया, जब मैं गूगल पर API कुंजी निर्मित संदर्भित निर्धारित करने की आवश्यकता तो, भले दूसरों को मेरी API कुंजी पता है, वे किसी अन्य डोमेन से इसका इस्तेमाल नहीं कर सकते हैं। क्या मैं सही हू?

लेकिन गूगल का कहना है कि आप कोड में API कुंजी एम्बेड चाहिए नहीं: https://support.google.com/cloud/answer/6310037

तो, जब गूगल मैप्स जे एस एपीआई का उपयोग कर रहा API कुंजी को छिपाने के लिए की जरूरत है? यदि हां, तो कैसे?

अद्यतन: 'एपीआई कुंजी' से, मेरा मतलब ब्राउज़र एपीआई कुंजी था।

+1

api कुंजी आपके डोमेन के साथ क्या करना है, तो केवल, क्या फर्क पड़ता है यह दूसरों इसे देख सकते हैं तो क्या होगा? –

+2

मुझे लगता है कि क्लाउड सपोर्ट उत्तर विभिन्न प्रकार की Google सेवाओं के लिए सुरक्षा पर एक पकड़ है जो कुंजी का उपयोग करता है। चूंकि आपकी मानचित्र कुंजी आपके डोमेन से जुड़ी हुई है, इसलिए आपको इसके बारे में चिंता करने की आवश्यकता नहीं है (और वैसे भी कुछ भी नहीं कर सकता) – j08691

उत्तर

6

Google मानचित्र के लिए कई प्रकार की एपीआई कुंजी हैं। क्लाइंट साइड लाइब्रेरी को एम्बेड करते समय ब्राउज़र कुंजियां उपयोग की जाती हैं, और क्लाइंट साइड पर इसका उपयोग करने के लिए लोगों को प्रकट करना ठीक है ( की आवश्यकता है ताकि आप इसे किसी भी तरह से नहीं बचा सकें)। फिर सर्वर-साइड कुंजियां हैं जिनका उपयोग जियोकोडिंग सेवाओं जैसी चीजों के लिए किया जाता है। उनको गुप्त रखा जाना चाहिए।

बस सुनिश्चित करें कि आप ब्राउज़र कुंजी का उपयोग कर रहे हैं।

+0

उत्तर के लिए धन्यवाद! मैं ब्राउज़र कुंजी के बारे में पूछ रहा हूँ। मैं सवाल अपडेट करूंगा। – fstang

+0

जावास्क्रिप्ट द्वारा भौगोलिक स्थान के लिए एक एपीआई है। यह छिपाने का अनुमान है क्योंकि यह ट्यूटोरियल में स्टेटन है, इसलिए मैंने इसे केवल मक्खी पर उड़ाने के लिए एक समारोह किया - लेकिन यह हमेशा एक ही कुंजी है! उन चाबियों के बारे में जानकारी Google देव में अस्पष्ट है, स्पष्टीकरण के लिए धन्यवाद! – Gustavo

4

आपके द्वारा पोस्ट किया गया लिंक कहता है कि आपको कोड में एपीआई कुंजी एम्बेड नहीं करना चाहिए, Google के क्लाउड प्लेटफ़ॉर्म से संबंधित है। आप अपने कोड में Google मानचित्र के लिए अपनी एपीआई कुंजी छोड़ने के लिए ठीक हैं।

2

मैं आपकी एपीआई कुंजी को केवल आईपी पते & रेफरर यूआरएल द्वारा उपयोग करने के लिए प्रतिबंधित करने की सिफारिश करता हूं, जिनकी आवश्यकता है: आईपी पते, रेफरर यूआरएल को प्रतिबंधित करके, आप एक समझौता एपीआई कुंजी के प्रभाव को कम कर सकते हैं।

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

इससे आपको अपनी एपीआई कुंजी सुरक्षित करने में मदद करनी चाहिए।

जेफ

0

जबकि इसके बाद के संस्करण जवाब सहायक होते हैं, उनमें से कोई भी निम्नलिखित भेद्यता पते:

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

मैं इस मुद्दे को हल करने वाले किसी भी समाधान में नहीं आया हूं। जब तक मैं कुछ याद नहीं कर रहा हूँ ...?

Relevant usage limits for google maps javascript api here.

+0

मुझे नहीं लगता कि हथौड़ा को प्रतिबंधित करने के लिए किसी प्रकार के अपने बैक-एंड कार्यान्वयन के बिना कुछ भी किया जा सकता है। –

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