2015-04-29 123 views
2

我可能會錯,因爲我對API密鑰基礎知識很陌生。如果我錯了,請糾正我。API密鑰實現的體系結構

我有一個JavaScript前端,後端應用程序PHP(可以是任何技術)。我想從AJAX的後端應用程序中公開一些API。因此,第三方開發人員可以在他們的應用程序中使用我的API,而不用擔心後端的實際執行情況。

我會暴露一個API密鑰給開發者,讓他從自己的應用使得任何要求,採用API密鑰,我可以保持它的API密鑰訪問應用程序的記錄。

因爲它是一個AJAX調用服務器,他存儲在我給了JS文件中的API密鑰。

問題是: 如果有人會使用尋找他的JS文件,可以很容易地獲得專爲其他應用程序設計的API密鑰。我應該如何以安全的方式執行此操作。

任何人都可以幫忙。

+0

你可以建立引用網址(其API調用從起源)和您提供的密鑰之間的關係。 – JuniorDev

+0

不能說是僞造的..?這是一個數據包數據,你可以使用WireShark進行更改。以及假設該人有PhoneGapped一個JS應用程序,那麼?? –

+0

完全純粹的JS應用程序幾乎不可能由您的標準程序保護。也許你可以構建一個基於令牌的方法,首先登錄/握手,併發送一個非常短效的密鑰,以包含在每個後續的API調用中。您還可以查找Facebook如何在API上處理這些情況。在他們的情況下,JS應用程序不需要安全密鑰,只需要appId。 – JuniorDev

回答

1

平原JavaScript是不可能從最終用戶隱藏由於終端用戶是一個執行所述代碼。

您可以使用模糊JavaScript但話又說回來總是有逆向工程的可能性。

+0

這就是我的想法。但是,那麼如何使用AJAX調用API API來請求某個API? –

+0

你沒有。您使用基於服務器的代碼來檢索API響應 –

+0

不要讓你...你的意思是AJAX不應該調用API,API應該通過另一個服務器端代碼,如CURL來訪問。 –