搜尋

首頁  >  問答  >  主體

新標題:保護API金鑰:在客戶端JavaScript中隱藏的方法

<p>現在我正在編寫一個客戶端JavaScript應用程序,該應用程式向USPS價格計算器API發出請求。為了進行此請求,我需要在請求的XML中提供我的API使用者ID。標籤如下:<code><RateV4Request USERID="ThisIsWhereMyUserIdGoes"></code>。我的問題是:有沒有辦法在JavaScript中提供我的使用者ID,同時仍然隱藏它,不讓使用者看到客戶端檔案。目前,我唯一的解決方案是在我的伺服器上建立一個包含使用者ID的PHP文件,然後在客戶端JavaScript中使用AJAX請求將其儲存在全域變數中。代碼如下:</p> <pre class="brush:php;toolbar:false;">var userID; $.get("/secrets.php", function( data ) { userID = data; });</pre> <p>這種方法足以防止我的API用戶ID被我的應用程式用戶看到嗎?還有其他辦法可以做到這一點? </p>
P粉521748211P粉521748211457 天前617

全部回覆(2)我來回復

  • P粉872182023

    P粉8721820232023-08-25 09:30:52

    如果您在2020年閱讀此頁面,並且出於某種原因(節省託管成本等)不想開發伺服器端程式碼,無伺服器函數可能是解決方案。

    這也從伺服器端呼叫第三方API,但您不必開發一個完整的伺服器端API代理。

    Netlify有相關文件。我猜其他提供者如AWS Lambda、Google Cloud Function也提供類似的功能,但不確定。

    https://github.com/netlify/code-examples/tree/master/function_examples/token-hider

    優點 無需管理伺服器

    缺點 供應商鎖定

    回覆
    0
  • P粉245276769

    P粉2452767692023-08-25 00:22:43

    簡而言之:不,你不能在客戶端應用程式中保護你的API金鑰。

    這篇文章詳細介紹了一些細節

    兩個選擇:

    • 在伺服器端進行API調用,然後從那裡向客戶端提供資訊
    • 要求客戶端使用自己的API金鑰

    回覆
    0
  • 取消回覆