2015-02-24 67 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并不那么糟糕。