簡體   English   中英

保護REST API和Slim框架

[英]Securing a REST API and Slim Framework

我是REST API的新手,我意識到已經發布了很多問題。 然而,仔細閱讀這些實際上讓我對如何處理這個問題更加困惑。

我使用Slim Framework創建了一個REST API,我只是用來傳輸數據。 我不會使用用戶登錄或身份驗證,所以我相信要保證這一點我只需要一個使用公鑰和私鑰的系統,但我不確定。

如果有人對正確/最安全的方法有所了解,或任何教學/資源都很棒。 任何幫助表示贊賞。

您可以使用SSL加密傳輸中的數據。

但SSL只是加密; 服務器端ssl不對客戶端進行身份驗證,也不進行授權。 您可以考慮授權,因為回答問題的是呼叫者可以做他要求的事情嗎? 認證建立所述呼叫者的身份或認證通常是這樣做的授權必要的第一步。 有時你不需要“整個身份” - 你只需要確定一個特定的方面。 例如,自動洗手間門不需要知道您是 ,但只有您是男性或女性才能確定身份。 同樣,有些服務並不關心你是誰; 如果您從特定網絡(ip白名單)撥打電話或攜帶特殊令牌,他們將允許訪問。

要允許服務器區分授權和未授權的呼叫,您有一些選擇:

  • IP白名單。 如果您知道將調用您的服務的應用程序或代理的IP地址,您可以在服務實現中指定該IP地址。 該服務可以檢查傳入請求的IP並拒絕那些不在白名單中的請求。 這是基於呼叫者地址的“隱式”授權。

  • 應用程序在每次調用中提供的秘密令牌。 您說您不想進行身份驗證,但這是一種身份驗證形式。 你可以稱之為“持票人令牌”。 攜帶此令牌的任何人都獲得授權。 在您的服務器中,您將檢查令牌的值並拒絕任何與眾所周知的值不匹配的呼叫。 這類似於IP白名單,除了明確傳遞令牌,並且與網絡地址沒有任何關系。

  • 令牌+密鑰對。 這就像用戶名/密碼,但它可用於驗證應用程序。 使用此選項可提供應用程序本身的標識。 如上所述檢查服務方面。

  • 用戶名/密碼。 驗證應用程序的用戶。

您可能希望將它們組合在一起以生成所需的解決方案。 換句話說,客戶端請求需要來自正確的I地址,並且需要具有應用的令牌/密鑰以及用戶的用戶名/密碼,以便被視為“已授權”。

暫無
暫無

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

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