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