在我的服务器上,我需要确保仅从Android设备接收连接。 可能吗?要在自定义Android组装中存储客户端证书,这对于生根有抵抗力吗?或者我可以在root设备上隐藏任何内容?并且不能以任何方式避免生根(为了提供我自己的android组装固件)?即使我设置了程序根检查 - 该应用程序可以由3d方重建以避免此检查。任何有用的想法都赞赏。 Thx提前。
答案 0 :(得分:0)
1) OAuth2
是身份验证和授权协议,广泛用于大型公司甚至更小的公司。想想Facebook API。如果用户未进行身份验证或未授权进行该呼叫,则可以删除入站请求。这是一种方法。
2)第二种方法是将您自己的用户代理添加到HTTP标头和其他自定义HTTP标头中。如果您的服务器检查这些标头,则可以删除入站请求。
您不必在客户端上存储SSL证书,因为客户端将启动与具有SSL证书的服务器的安全连接。
无论如何,使用证书客户端可以加密数据但我不相信Android Java支持。如我错了请纠正我。如果您碰巧使用该密钥加密数据,您可以加密某些字符串或字节,您可以将其解析为一个自定义HTTP标头,但如果有人发现加密字符串将是什么,他/她仍然可以伪造连接。但是,我不建议将SSL证书存储在客户端的设备上。
无论你做什么,总有办法伪造一个HTTP / HTTPS连接,就像它来自一个Android设备,但你可以使用这两种方法缩小传入的HTTPS请求,并使其更难。一个例子是PokémonGO。 GitHub上有很多非官方的API可以伪造一个类似来自官方应用程序的连接。