簡體   English   中英

如何保護JavaScript / Ajax客戶端[apigee]中使用的API?

[英]How do I secure an API that is used in a JavaScript/Ajax client [apigee]?

我將Apigee用作私有REST API的代理,該API允許對數據庫進行基本的CRUD操作。 前端開發人員希望直接從JavaScript / Ajax調用我的API,所以我不能使用基本的API密鑰身份驗證,因為任何人都可以查看JS的源並在我的API上調用可能具有破壞性的方法(我遠非如此)瀏覽器中的策略設置,但這不會阻止某人進行卷曲並在瀏覽器之外調用我的API)。

最好的方法是什么? 用戶身份驗證后,UI開發人員是否可以以某種方式使用OAUTH來獲取每個會話的訪問令牌,並在其Ajax調用中使用它? 但是即使那樣,該用戶仍無法查看JS源並通過curl進行令人討厭的操作嗎?

提前致謝!

OAuth v2應該可以解決您的問題。 Apigee網站上有多篇文章和資源,討論了何時最好使用OAuth v1與OAuth v2。 http://apigee.com/docs/content/apigee-oauth-frequently-asked-questions ,三足的OAuth策略可能最適合您: http : //apigee.com/docs/gateway-services/content/oauth Apigee網站上有一個示例。

因此,您想授權訪問者訪問您的第3方網站,並確保他們不能做任何侮辱性的事情?

沒有為此的安全模型。 一旦授權了用戶/會話/瀏覽器免費游戲,他就可以做任何他想做的事情。


因此,退后一步,您想防止什么濫用行為? 也許您想阻止未知的第三方使用您的服務。 在這種情況下,您可以在水下設置API密鑰身份驗證,從而為您提供一個臨時會話密鑰。

有3個派對。 用戶(u),使用您的API的第三方(3)和您(y)。

  • u3請求會話密鑰
  • 3使用他的API密鑰向y發出水下請求
  • y驗證API密鑰並將會話密鑰發送回3
  • 3雙手會話密鑰u
  • uy發出服務請求

如果3永遠無法獲得會話密鑰,則您的服務可以安全地應對未知的第三方。

暫無
暫無

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

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