如何从中间人攻击中处理API



我将构建一个跨平台应用程序(WP8、IOS、Android),这些应用程序将使用我的服务器进行API请求。

我的服务器还会调用不同类型的API(谷歌、脸书等)并返回一些结果。并且应用程序所有者不必登录就可以进行这些调用。

如果中间有人,他可以跟踪api调用,并将其用于自己的使用,从而耗尽我使用的api服务的配额。

我只想让那个些有申请的手机能够打那个些电话。检测来自应用程序的对服务器的api调用的最佳方法是什么?

您可以使用SSL来防止中间人攻击,但实际上没有一种方法可以100%确定您正在与应用程序通信。。你可以通过要求某种访问令牌或使用自定义加密来增加难度,但如果有人可以反编译你的应用程序,他们可以为所欲为。

在您的特定情况下,您应该使用HTTPS,并且在客户端中,不仅要检查您是否使用HTTPS连接,还要检查服务器及其证书链提供的证书是否符合您的要求。如果你不能做到这一点,你仍然可以执行MITM攻击。例如:

  • MITM代理可以充当服务器的客户端,并使用HTTP连接将内容提供给真正的客户端
  • MITM代理可以充当服务器的客户端,并使用自签名SSL证书向真正的客户端提供HTTPS连接

最新更新