【问题标题】:How do 3rd party APIs prevent API Quote theft?3rd 方 API 如何防止 API 报价被盗?
【发布时间】:2017-05-05 03:27:09
【问题描述】:

我正在编写一个使用 3rd 方 API 服务(例如 Google 地图、细分分析等)的应用程序。所有这些应用程序都提供了一个应该嵌入到 JS 代码中的 API 密钥。

所以任何可以检查源的人都知道客户端密钥。这些服务如何防止错误使用该密钥。 假设有人使用我的密钥调用这些 API 的次数与每日允许的最大 API 调用限制一样多,这将使进一步的实际 API 调用失败。

我知道Referrer Header可以用来检查请求来源,但是Referrer Header很容易被精明的用户欺骗。

我不知道服务部门是否采取了任何措施。似乎是一个非常大的问题。

提前致谢。

【问题讨论】:

    标签: api google-maps security api-key


    【解决方案1】:

    这是一种风险,但如果 API 提供者做好准备,它并不像看起来那么糟糕。

    首先要注意的是,这样的 API 密钥不用于身份验证,因为它不验证调用者(无论是应用程序还是最终用户)。它仅适用于速率限制和跟踪。

    所以真正的威胁与您描述的类似,例如有人使用您的 API 密钥并用完您的配额。但是,如果该人是通过他自己的计算机或网络执行此操作,则可以从他的 IP 或 IP 范围看到所有恶意流量。如果 API 提供商很聪明并且有良好的监控(如 Google),他们不会撤销/禁用您的 API 密钥,而只会过滤或忽略恶意流量。

    所以攻击者应该能够使用您的 API 密钥建立一个网站并让用户访问它。但是,在这种情况下,不能欺骗引用者/来源标头,浏览器通常不会允许 Javascript 更改请求中的引用者或来源标头。同样,API 提供者有一种方法可以根据引用者/来源过滤恶意流量。

    攻击者需要访问许多不同的客户端,例如僵尸网络,以使用您的 API 密钥发出所有这些请求以耗尽您的配额。这可能会奏效,但如果攻击者可以通过分布式拒绝服务攻击您的网站,那么您主要关心的可能不是您的 API 密钥。

    【讨论】:

    • 我了解某些服务可以过滤来自特定 IP 的流量。当我的目标受众是一所学校时会发生什么,其中大多数请求都来自同一个 IP,并且攻击者也在该 IP 上用完配额。
    猜你喜欢
    • 2019-01-18
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    相关资源
    最近更新 更多