[英]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.