如何防止API请求源欺骗?

时间:2015-10-16 13:21:34

标签: api rest security oauth

背景

我正在用OAUTH等编写自己的API。

我希望用户能够获得x免费请求,之后他们必须支付一小笔费用,因为服务器不是免费的。有没有办法防止坏人窃取令牌(内部例如Android应用程序的代码)并生成他们自己的请求,用尽  我的原始用户的请求? 问题的一个重要部分是:我可以确保请求来自某个平台:例如,它是否来自Android手机。 因为每个平台会有不同的价格。

我自己的想法

  • 标题可以伪造,只会造成虚假的安全感
  • 是否有最流行的平台类型(iOS,android,WP, CMSes,桌面应用程序)是一种安全存储凭据的安全方式 发展? (我是否会错过一些人们想要使用并且不安全的平台?)
  • 如果是这样,我是否可以编写强制开发人员以安全的方式存储其令牌而不是硬编码的库?
  • 基于Ip不适用于移动应用程序 您可以限制每个IP接受的请求

如果答案是否定的:

可能的后果

目前阻止我的是什么

  1. 下载使用Google地图api和的应用 反编译它。
  2. 提取令牌
  3. 产生大量请求只是为了弄乱开发人员(curl)
  4. 人们将获得wordpress许可,但欺骗也会使用他们的凭据用于移动应用。

    免责声明:我没有恶意,但我试图了解如何预防

    的人

1 个答案:

答案 0 :(得分:1)

基本上答案是。您需要将您的令牌广泛分发到您无法控制的环境中,这样您就会自动丢失。没有普遍的"安全"存储任何你可以强迫每个人使用的东西的方法(如果有的话会不会很好?)。

为了跟踪使用情况,您需要对使用令牌进行身份验证的用户进行身份验证,并确保您需要将其窃取/泄露/误用。这通常是您首先拥有令牌而不是密码的原因:因为您可以撤销和重新生成令牌。如果令牌被滥用,谁最受伤?此令牌所属的开发人员。所以他们有很大的动力尽可能安全地存储这些代币;让他们知道最好的方法。您可以做的是主动告知开发人员他们的令牌是否显示异常行为,并让他们自己轻松撤销和重新生成令牌。