如何在基于eBay API的JavaScript应用程序中保护我的AppID?

时间:2012-04-01 00:36:58

标签: javascript api jsonp ebay app-id

我即将在个人网站上发布基于eBay查找API的演示JavaScript应用程序;我想知道是否有办法阻止我的AppID被阅读和利用。 是否可以将AppID与特定域相关联?我无法在eBay开发者论坛和官方文档中找到答案。

2 个答案:

答案 0 :(得分:3)

如果您将数据发送到客户端,客户端可以读取数据。没有办法阻止这种情况(如果JavaScript可以解码它,那么用户也可以)。为了避免这种情况,您需要在您的站点上保留数据(您的AppID),并在您的服务器上处理请求。因此JavaScript需要与您的服务器通信,然后您的服务器会将请求传递给eBay,添加AppID,然后将结果传递回JavaScript。

答案 1 :(得分:1)

回答你的问题......

似乎无法限制AppID,因为限制不能像每个站点那样工作,并且您通常只有一个AppID用于所有用途/站点。从2010年开始this comprehensive thread(引用如下),我怀疑已经发生了很大的变化。最终结果是,对于只读应用程序,例如您网站上的搜索结果,它基本无关紧要。

更一般地说,在浏览器中保护JSON API调用

检查引荐来源是保护其他公共API的最佳方法。这就是Google限制其地图API密钥的方式,例如:https://developers.google.com/maps/documentation/javascript/tutorial

关于防止欺诈的唯一因素是活动监控,因为从第三方计算机调用API,可能需要跟踪滥用趋势,可能是通过比较其他网站活动的呼叫列表,或者使用JSONP通过AJAX检查浏览器的属性。例如,谷歌可以将他们的API调用与他们的Google Analytics调用交叉引用,但可能总是存在误报。

最后,如果恐惧是CSRF,那就是:How to reliably secure public JSONP requests?

如果网址再次更改,请从易趣线程中逐字引用:

  

每个开发者帐户都有一个DevID。

     

可能有多个AppID,但这些只能通过付费支持票证获得。

     

每个AppID可以有多个CertID。 CertID确定您的通话限制。

     

您可以为每个AppID生成无限制的令牌。每个令牌都是AppID,UserID和相关的eBay用户密码的配对。令牌目前有效期为18个月。然后必须重新生成它们。也可以通过API或网站优先权过早地“撤销”代币。

     

对于需要令牌的API系列,您可以使用基于您自己的UserID的单个令牌来检索大多数公共信息。但是,只有在使用为目标UserID生成的令牌时,才能使用私有事务详细信息。有些调用实际上是从令牌中派生出UserID。

     

如果多个应用程序共享相同的AppID,它们都会对每日呼叫限制做出贡献。这就是为什么你可能想要一个单独的AppID。

     

https://www.x.com/developers/ebay/ebay-api-call-limits

     

图表中显示的限制是给定API系列的“聚合”。有一个隐含的per-AppID。对于Trading API,eBay进一步限制了每次通话或每时间间隔的使用。像AddItem这样的调用有更高的限制。 GetApiAccessRules将返回您的实际限制和使用情况。

     

Per-IP-address表示呼叫计算机的IP地址。如果您要通过多个IP地址轮换,您实际上会增加您的限制。有许多用JavaScript或Flash编写的只读“小部件”,它们在客户端浏览器中运行,因此使用客户端IP进行调用。在这种情况下,呼叫限制非常微不足道。

     

AppID,DevID和CertID属于开发者帐户的创建者。该创建者受API许可条款的约束。

     

作为密钥的所有者,您不允许对API进行任何第三方程序控制。严格来说,这意味着密钥和从这些密钥派生的任何令牌都应保密(即在您的独家控制下)。

     

显然,eBay没有强制执行严格的解释,因为建议客户端应用程序使用FetchToken。一个老练的用户可以轻松抓住即将到来的令牌。基于他们自己的用户ID,有人可以对令牌做什么伤害?

     
      
  1. 查看每日通话限额
  2.   
  3. 创建违反许可的API应用程序
  4.         

    有关更多的争论,请参阅此前的帖子。 (链接坏了)

         

    一旦您的应用程序通过eBay兼容应用程序检查,您可以为每个用户请求1.5M共享或20K呼叫。

有关eBay API的更多信息,建议您their forum询问。