簡體   English   中英

小型API安全最佳做法

[英]Small API Security Best Practice

我處於一種情況,我制作了一個iPhone應用程序和一個RESTful API(通過php腳本)來與各個客戶倉庫數據庫進行通信。

目前,我使用自簽名證書手動設置各個Web服務器。 使用特殊的長隨機密碼創建用戶(該密碼已硬編碼到應用中)。 設置其Web服務器,以便我的php腳本需要基本身份驗證,並且僅授予特定用戶訪問權限。

在我的應用程序方面,用戶名/密碼是硬編碼的,它忽略了服務器具有自簽名證書的事實。

這個模型有什么問題嗎?

任何人都可以通過使用基本身份驗證設置和自簽名證書將應用程序指向自己的服務器,輕松捕獲用戶名/密碼。

為防止這種情況,您還可以驗證證書簽名(或公共密鑰)和公用名是否與您創建的自簽名證書(同樣,采用硬編碼)匹配。 這稱為證書固定

盡管如此,這仍然假設用戶名和密碼至少很難通過反匯編代碼來獲得,並且當然要理解,硬編碼的用戶名和密碼始終可以由可以讀取您反匯編代碼的堅定破解者竊取。

當然,使用用戶名和密碼,他們可以按照自己的條款訪問您的API,而其他人則需要為該帳戶付費。

除了讓應用程序中輸入硬編碼值之外,您還可以讓應用程序進行一些設置過程,以便用戶首次輸入憑證嗎? 即使這樣,單個用戶的憑據也可能會從其設備上被盜,但至少是單個用戶,您可以阻止訪問並設置新帳戶。 這是標准方案。

同樣,使用TestFlight(甚至可以自己滾動)之類的東西而不是通過AppStore將其發布給您的客戶也是可行的。 這將有助於限制單獨構建的應用程序泛濫的情況,更不用說幫助減少應用程序商店中的混亂情況。

暫無
暫無

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

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