我正在构建一个android应用程序,它与Web服务器进行通信以进行身份验证,并从服务器获取数据。我使用HTTPS / SSL在服务器上使用自签名证书进行通信,并允许在Android应用程序中使用该证书。通过这种方式,我确信我正在与正确的服务器通信。但是如何确保服务器从正确的客户端获得请求。
如果我将浏览器的http请求欺骗发送到服务器怎么办?
服务器如何知道它是否从Android应用程序获取请求,是否有任何方法限制服务器仅处理来自移动应用程序的请求?
答案 0 :(得分:2)
这是一个复杂的问题。
您可以拥有由服务器识别的CA签署的私有证书及其相应的公共证书(只需在相应的密钥库中添加CA公共证书)。 该解决方案的主要复杂因素是: - 有人可以窃取证书并在另一台设备上使用它(如果你的应用程序这个问题可以忽略不计,那么这个解决方案就可以了) - 证书分发和到期:您需要一个解决方案,以便在证书到期之前进行引导,证书分发和操作。
其他解决方案可能涉及拥有设备ID,有一些提供商,并使用一次性密码。