亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Google Maps如何保護其API密鑰?如何做類似的事情?

Google Maps如何保護其API密鑰?如何做類似的事情?

API
一只名叫tom的貓 2019-11-07 13:11:43
當前,Google要求您創建一個API密鑰,該API密鑰特定于將要從中提供地圖的域。Google如何執行?我想做同樣的事情。我公開了用于我的服務的API,但希望允許客戶端通過javascript而不是僅從服務器嵌入對API的調用。我可以用一個隨機令牌來保護它,但是任何在客戶端計算機上查看代碼的人都可以輕易地欺騙它。我一直都認為這個概念是不可能的,但是Google會以某種方式很好地執行它。編輯-聽起來Google確實還沒有做任何令人驚奇的事情。他們的API最有可能只是用于跟蹤,而不能真正保證擁有鑰匙的人使用他們的API。
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

我很確定他們使用REFERER URL來確定呼叫的來源。如果該域與分配給密鑰的域不匹配,則該請求無效。

對于一個實際的示例,使用PHP可以檢查域,$_SERVER['HTTP_REFERER']以檢查引薦來源。如果域匹配,則返回有效響應。如果不是,您可以返回401未經授權或其他響應。


查看完整回答
反對 回復 2019-11-07
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

API密鑰本身很可能是與該密鑰相關聯的域的單向哈希,并且只有Google API服務器知道。它可能包含其他一些眾所周知的信息(當然對Google而言)。當您從該域發出請求時,API服務器會使用該請求來自的域,并以相同的一種方式進行哈希計算并比較這兩個值。

對于Ajax調用,他們很可能使用引薦來源網址獲取文檔宿主的域。盡管可以欺騙引薦來源網址,但最終還是要使用API,您需要獲取Google javascript才能在文檔中執行。此時,此javascript可以驗證調用Ajax API調用的文檔確實源自目標服務器。當然,如果您有自己的DOM實現或腳本的即時修改,這也是欺騙的。但是,這種欺騙需要在客戶端進行,并且想要使用Google API的網站能夠欺騙客戶端軟件的可能性很小。

請注意,由于該API本質上是免費的,因此他們也可以提供對其API的匿名訪問。顯然,Google的意圖不是保護未經授權的訪問,而是要確保他們可以收集有關該數據使用情況的盡可能多的數據,并能夠將該使用情況與他們收集的有關目標域的其他數據相關聯。因此,我不希望API密鑰驗證比我上面描述的復雜得多-更高級方法的ROI太低。

當然,也存在通過其API可能進行XSS攻擊的擔憂。但是我不認為他們的API密鑰與他們擁有的任何反XSS代碼有太多聯系。


查看完整回答
反對 回復 2019-11-07
  • 3 回答
  • 0 關注
  • 672 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號