2015-02-24 66 views
1

我有一個應用程序,它可以檢索並提交返回到PHP服務器的票證。每個用戶都必須以某種方式從應用程序登錄到PHP服務器。我已經閱讀了許多不同的方法,例如OAUTH 2.0,但我的問題是爲什麼它需要如此複雜?爲什麼我不能將用戶名和密碼(md5或其他)添加到發送到服務器的每個HTTP請求中?服務器可以在響應之前檢查。這是一個安全風險?Android身份驗證到PHP服務器方法

我沒有任何敏感信息發送到從服務器。

回答

1

一個未加密的MD5哈希值和用戶名,可以很容易地通過一箇中間人攻擊被攔截和由第三方發送到登錄的用戶。散列的目的是爲了防止密碼被竊取,如果你的服務器被攻破,發送一個未加密的版本可能被攔截併發送,就好像它們是用戶一樣。你想加密整個數據包,所以第三方不能冒充用戶。爲此,我會研究HTTPS/SSL。

Parse的後端,簡化認證過程頗有幾分可能是值得研究的。

有關散列加密VS詳細信息和最佳實踐看這個question。你會發現一個更好的散列方法,包括salting和多次迭代,如果正確完成可以加強md5,雖然有更安全的選擇。

0

如果您希望連接到現有的身份驗證服務,OAuth非常棒。這意味着用戶不需要記住您的網站/應用程序的密碼。考慮這是對用戶的服務。雖然OAuth不一定更簡單或更快。我可以想象,對於新手程序員來說這似乎相當艱鉅。

至於存儲密碼進入,md5是壞的,真的很糟糕。 https://security.stackexchange.com/questions/19906/is-md5-considered-insecure 從本質上講,如果與(散列)密碼被泄露攻擊你的數據庫可以很容易地計算原始密碼是什麼。 md5根本不是已經足夠了。也許10年前,這很好。

正確存儲密碼是相當棘手的。構建一個完整的入侵檢測,密碼存儲,密碼檢索/重置的認證系統是很多工作。也許OAuth並不那麼糟糕。