2010-05-17 104 views
2

我有一個iPhone應用程序訪問數據的ASP.NET Web服務。由於我正在構建應用程序的ASP.NET端和iPhone部分,我們很快將在Appstore中發佈它,我想知道我需要做什麼安全檢查。ASP.NET webservice API安全

程序的基本流程(不泄露這件事太多的信息)如下 -

。登錄(輸入用戶名,通過應用程序)
。主要屏幕,其中數據從web服務加載並呈現
。並在用戶幾次更新後發回數據

我正在使用POST通過HTTPS將數據發送到Web服務。我正在對輸入進行消毒,檢查輸入的長度,但就安全性 而言,這是我的知識的限制。任何其他技巧,非常感謝!

編輯:我應該補充一點,我們的服務需要單獨訂閱,它的iPhone組件不能單獨使用。所以普通用戶不會擁有登錄憑證。而且應用程序本身也有醫療數據,所以我寧願沒有任何人嘗試從我的登錄頁面進行攻擊。

謝謝,
Teja。

+0

您是否在設備上存儲用戶名和密碼,或者只是讓用戶每次輸入? – Rudiger 2010-05-17 02:14:55

+0

現在,我正在存儲用戶名並讓用戶每次輸入密碼。 – 2010-05-17 03:20:21

回答

2

有很多東西需要考慮。您可以同時控制客戶端和服務器端,因此您必須採取一系列緩解措施。看起來你正在採取正確的方法,但你需要把重點放在風險/威脅上,並將緩解措施映射到這些風險/威脅。

例子:

  1. 認證使用用戶名和密碼來完成。這裏可能會出現什麼問題?主要威脅似乎是竊聽電報上的憑證,或設備丟失(或訪問它)。這些會將證書暴露給攻擊者。如果您使用SSL來加密有線流量,那麼它很難在網絡上嗅探這些流量。但是,如果您將證書存儲在設備上,SSL在這裏不會保護您。您可能需要考慮的是OAuth(委託身份驗證)或存儲具有某種失效狀態的憑據的哈希版本。推薦使用OAuth路由,並避免用戶在您的應用程序中輸入和存儲憑證。相反,設備存儲與其用戶名和密碼無關的「密鑰」。然後他們可以登錄到Web應用程序並撤銷應用程序。存儲具有到期日期的散列憑證並不安全,但由於OAuth需要更改服務器和客戶端,因此在短期內可能更容易實施。
  2. 像iPhone這樣的設備可能會提供一定程度的加密和防範本地攻擊,但您應該考慮加密由您的應用程序存儲的數據。您還應該將存儲的數據量保持在最低限度。這可能是一個挑戰,但您需要管理與用戶和管理層的權衡。

有一些resourcesout那裏你可能想要閱讀。 Android或其他移動平臺的材料也可能有用。

確保ASP安全。NET Web服務

微軟已經在這方面發佈了一些guidance(和相關的WCF security),但重點傾向於Web服務方面。您需要考慮更全面的安全方法。由於該應用程序與其他應用程序一樣是ASP.NET應用程序,因此您應該查看一般的ASP.NET安全資源,如Beginning ASP.NET SecurityP&P Security Guidelines: ASP.NET。您可能還想在StackOverflow上執行一些more searching

+0

謝謝,我已經加密了用戶在iPhone中存儲的任何內容,我會看看OAuth。 我現在關心的另一個問題是Web服務端的數據和數據庫安全性。任何幫助都會很棒。 – 2010-05-17 16:40:51

+0

我用一些Web服務安全信息更新了我的帖子。 – 2010-05-17 17:25:14