- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有客户端/服务器数据传递所有工作正常。文本、图像等。我的用户在他们的 Android 设备上创建博客类型的帖子,并上传到我的服务器。所有这些都是使用 HTTP Multipart 和输入/输出流完成的。我的问题是 - 我怎么知道客户端实际上是我的应用程序而不是一些脚本/其他黑客应用程序?
我想避免滥用场景。
我的一个想法是在频繁发帖时强制服务器端等待一段时间以防止垃圾邮件......
但除此之外,我如何检查向我的服务器发送数据的人是
我想避免使用 SSL,因为我不想在 Verisign 和 TRUST 注册并经历所有这些..
最佳答案
如果只有您的客户端和服务器,您可以(并且应该)使用 SSL 而无需购买任何东西。您控制着服务器和客户端,因此每个人都应该只信任一个属于另一个的证书,您不需要为此目的使用 CA。
这是高级方法。创建自签名服务器 SSL 证书并部署在您的 Web 服务器上。为此,您可以使用 Android SDK 中包含的 keytool。然后创建一个自签名客户端并将其部署在您的应用程序中作为资源包含在您的应用程序中的自定义 keystore 中(keytool 也会生成它)。将服务器配置为需要客户端 SSL 身份验证并且只接受您生成的客户端证书。将客户端配置为使用该客户端证书来标识自己,并且只接受您在服务器上为该部分安装的一个服务器端证书。
对此的分步回答比此处保证的要长得多。我建议分阶段执行此操作,因为网络上有关于如何在服务器端和客户端处理 Android 中的自签名 SSL 证书的资源。我的书中也有完整的演练,Application Security for the Android Platform , 由 O'Reilly 出版。
关于Android 客户端,Http 服务器,我怎么知道客户端正在使用我的应用程序发送数据?验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8411008/
我是一名优秀的程序员,十分优秀!