2016-08-14 28 views
4

我從來沒有真正使用這個堆棧,我只是想確保我正在思考沿着正確的路線。使用WCF進行ASP表單身份驗證?

我有一個WCF服務,帶有Windows身份驗證,用於傳輸安全性和證書,用於具有一個TCP端點的消息安全性。我的服務具有驗證純文本用戶名和密碼的方法,用戶名用於從數據庫檢索salt,並使用該salt對給定密碼進行散列處理,然後與數據庫中的密碼進行比較。

爲了在我的ASP MVC項目中對用戶進行身份驗證,我簡單地使用表單身份驗證並設置auth cookie,如果WCF服務在用戶名和密碼從操作傳遞給服務時返回http代碼確定。

如果我實施了必要的安全措施,例如在x次服務驗證失敗請求後鎖定帳戶,這是否充當足夠的安全性來鎖定我的應用程序?

該項目面向公衆。

+0

你使用的是HTTPS嗎? –

+0

@SimonMourier是 –

回答

2

有多種因素需要考慮。

  1. WCF服務的域可以被劫持和DNS重新路由嗎?
  2. 在WCF服務中如何處理錯誤。發生錯誤時可能會返回OK狀態?
  3. 鹽是確定的,但我會推薦像BCRYPT的東西,而不是密碼存儲和驗證。
  4. 確保您有requireSSL flag組上你的形式,以及

0
  • 使用HTTPS
  • 添加驗證碼驗證碼在MVC項目
  • 添加重試之間的時間跨度,極限重試次數
  • 不要使用純文本,先編碼它,即使md5會更好
  • 如果在互聯網上,你最好找一個專家
+1

我真的不認爲你想表達的是一切都很棒。擁有CAPTCHA的網絡服務?奇怪的是,尤其是在遷移到其他服務和平臺時。 「如果在互聯網上,你最好找一個專家」。這是一個非常不準確的說法。微軟已經投入數百萬美元創建了令人驚歎的圖書館,培訓制度和教程,供普通開發人員遵循,以創建安全的API以提供連接互聯網的設備。 –

1

我會強烈建議加強與窗體身份驗證廢除WCF服務或REST服務工作時。您可以使用BASIC身份驗證並使用SSL真正包裝所有內容,這樣會更好。真正需要注意的幾件事情如下:

  • 你打算如何處理強力嘗試。
  • 您如何規劃合法用戶鎖定自己?
  • 您計劃定位哪些操作系統?您是否爲網站創建了WCF服務?您是否計劃在以後使用IOS和Android?

考慮所有上述選項後,檢查了以下工作:

https://msdn.microsoft.com/en-us/library/ff406125.aspx

而當你認爲你已經夠讀,讀多一點。 WCF的OWASP最佳安全實踐是一個了不起的標準,你甚至可以從它創建一個清單。

https://www.owasp.org/index.php/WCF_Security_Best_Practices