簡體   English   中英

如何在使用JavaScript時保護API密鑰?

[英]How to protect an API Key when using JavaScript?

所以,我正在開發一個僅供我自己使用的小應用程序,也許是一個關於Git的開源項目。 我正在使用Envato Marketplaces的API,眾所周知,有些操作不需要任何密鑰,但同時也有一些需要。

我首先在PHP中為Envato API做了一個很好的API包裝器,但后來我決定用JavaScript進行一些實驗,所以我用JavaScript開發了相同的包裝器。 到目前為止,我對公共操作沒有任何問題,但我現在必須使用API​​密鑰。

我的問題是,如果有一種方法可以保護JavaScript中的API密鑰。 我不能把它放在純文本中,因為它可以被看到代碼的其他人使用。 那么API會保密嗎? 也許從XHR的JSON文本文件中獲取它?

簡答:不

無論你做什么來混淆密鑰,你仍然必須發送它以使其在客戶端以某種方式可用,因此可以使用fx提取它。 螢火蟲。

即使您設計了一種令人敬畏的神奇方式來保密密鑰,但在某些時候您必須提出實際的API請求,並且必須從瀏覽器發送,攻擊者才能讀出密鑰來自Firebugs網絡標簽的純文本。

正確的做法是圍繞需要密鑰的API調用創建一個PHP包裝器,然后從Javascript調用該包裝器。

我現在的解決方案是在rust中寫一個小包裝器,然后將它放在/ cgi-bin中並調用它。 這應該保持api-key,api信譽和會話數據與客戶端分離。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM