【问题标题】:Android-server - Send password securelyAndroid-server - 安全地发送密码
【发布时间】:2018-03-13 21:37:17
【问题描述】:

我正在发布我的第一个 Android 应用,但我对服务器的安全性存有疑问。

我按照教程使用 sha1 在 HTTP 标头中添加安全性,一切顺利。

Tutorial

问题是服务器必须知道用户的密码,客户端必须安全地发送它。

第一次发送密码时我必须用https配置服务器吗?我应该总是使用 https 而忘记 http 标头吗?

对于安全密码发送,还有其他安全替代 https 吗?

我对这些基本概念感到困惑......

我需要引入一些安全性,这样 url 就不能被其他人使用。它不是用户密码,它是我发送到服务器上比较并丢弃或接受未来请求的唯一字符串。 谢谢。

【问题讨论】:

  • 你看过 Oauth2 吗?
  • 我明白这是为了让第三方访问。我不需要它,我只有一个客户端和一个服务器,我需要知道如何安全地注册(发送密码)。我知道所有请求的标头中都有一个带有某种加密方法的密钥,但我对第一次通信感兴趣,其中密码是安全发送的。
  • 始终使用 HTTPS。
  • 伟大的 narf,我照你说的做了。

标签: php android symfony security


【解决方案1】:

始终使用 HTTPS:Narf

1 - 使用新的未签名证书将 https 添加到服务器(ubuntu 14.04,e2c Amazon)

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

2 - 从 android whit 未签名证书连接到服务器

https://developer.android.com/training/articles/security-ssl.html#SelfSigned

并解决授权错误:

OkHttp trusting certificate

谷歌的例子很好,但是下载了一张图片,我们有兴趣提出请求,我已经这样做了:

How to do an HTTPS POST from Android?

为请求添加参数:

How to add parameters to HttpURLConnection using POST

为我工作

【讨论】:

  • 考虑到以后您不想使用自签名证书,而是使用来自 CA 服务的 真实 证书。这样您就可以信任并接受证书,而无需解决授权错误。
  • 如果他能从let's encrypt免费获得有效证书,他为什么会忽略ssl证书?
  • 我需要加密通信,我使用免费的未签名证书。 CA 证书需要花钱,而我的应用程序没有 Web 界面。我不需要由 CA 签署。我错了?
猜你喜欢
  • 2010-12-07
  • 2011-04-29
  • 2011-12-12
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2012-05-15
  • 2015-07-21
相关资源
最近更新 更多