簡體   English   中英

如何使用公開密鑰保護Web API免受未經授權的訪問?

[英]How to secure a web API with public key from unauthorized access?

在了解Web API的本質的同時,提出了一些有關其安全性的問題。 設計Web API的最佳做法是什么,以便只有授權用戶才能訪問它。 我嘗試檢查以下選項,但沒有一個能夠實現完美的安全性。

1)我不能依賴請求源,引薦來源或用戶代理字符串,因為它們很容易被欺騙。

2)Web API只需要一個公共密鑰即可訪問它,因此CSRF令牌也不適合實施。

還有其他方法可以確保請求僅來自受信任的來源嗎?

我的用例是我想實現客戶端API(例如Google Map),在該客戶端中,任何購買了API訪問權的人都將其網站域列入白名單,並可以將我的插件包含在他們的網站中。 然后,插件將代表用戶向我的API發出請求。

如果我在Web API上應用一些請求簽名邏輯,以便我的服務器可以驗證請求者並拒絕未經授權的來源,那是個好主意。 我假設我必須對我的請求簽名邏輯保密,所以我可能需要對代碼進行一些混淆。

您沒有提及用例,尤其是在客戶端是系統還是個人的情況下?

首先,默默無聞的安全絕不是一個好選擇。 其次,“創建自己的安全系統”被認為是不好的做法,最好是站在擁有安全知識和經驗的其他人的肩膀上。

不知道確切的用戶情況,很難提出很多建議……但是,我建議您看一下jwt令牌之類的東西(我想您是Webclient背后的一個人,您的網絡服務)...因為您已經用asp.net-web-api標記了問題,所以我也建議您看看https://identityserver.io項目...我以前成功使用過IdentityServer4在一個大型的asp.net webapi項目中...

暫無
暫無

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

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