2012-07-27 25 views
2

我正在創建一個Web服務以暴露給我的移動應用程序。我目前正在實施一個基於令牌的認證解決方案(因爲這是我過去所做的);然而,在這種情況下,我正在努力理解爲什麼我不每次都只是傳遞用戶名和密碼?我可以在運行移動應用程序時在RAM中保存密碼(如果我們想要過於複雜的話,在用途之間進行加密),然後每次連接到服務器並在每次重複哈希驗證時傳遞它。當然,一切都是SSL,所以每次做網絡傳輸都沒有更多的風險,而只是一次做到這一點?我看到的唯一的CON是哈希驗證過程可能比標記驗證更昂貴 - 也許。我還有其他缺點嗎?每次調用Web服務時重複用戶名/密碼驗證

回答

1

有幾個理由不這樣做:

  1. 您發送信息時,都會打開攔截的風險。 (即使這種風險大部分通過使用諸如SSL的加密系統來減輕)。
  2. 在每個請求上傳遞用戶名/密碼組合意味着您將在服務器端檢查每個請求的組合。這通常需要額外的數據庫命中和一些不必要的邏輯。
  3. 如果您在每個請求上傳遞如此的證書,那麼您需要爲每個請求使用SSL - 這是很昂貴的開銷。以純文本來回發送加密的身份驗證令牌要便宜得多 - 只有服務器端才能讀取。

在過去的幾天裏,這似乎是一個熱門話題,因爲我回答了幾個關於RESTful auth等的問題。我在下面提供了一些這些答案的鏈接 - 這些答案更加深入。也許如果你看看我提出的認證計劃 - 你會看到它如何保護你,而不僅僅是在每個請求上發送用戶名/密碼。

Authentication in RESTful web services

Public facing Authentication mechanisms for REST

相關問題