我会试着解释这个问题。
有一些服务,它的API完全建立在JS (ajax/json)为网站合作伙伴。Site-partner是一个人,他与服务有一些合同。因此,对API的访问确实只有某些人(站点-合作伙伴)。我要做的是创建一些授权方式,让服务找出真正来自站点合作伙伴的请求。
复杂之处在于API完全是用JS编写的。这就是为什么HTTP身份验证、秘密API密钥和RSA密钥交换都不适合这种类型的API的原因,因为服务需要一些身份验证参数来接收,而唯一的方法是使用JSON格式通过AJAX传递它们。因此,每个知道如何查看页面源代码的人,都可以简单地复制这些参数,并以他们想要的方式使用它们。
带有IP限制的变体也不适合,至少因为站点合作伙伴可以在共享主机上托管。
我想使用一些API密钥和一些不清楚的散列(仅对服务清除)+时间戳。但这种方法迟早会变得清晰。
无论如何,脑海中浮现的一切并不完全适合。也许有人遇到过这个问题?感谢您的回复。
发布于 2012-04-30 08:08:02
JSON,因为服务需要一些身份验证参数来接收,而唯一的方法就是使用
格式通过AJAX传递它们。
我认为你误解了JSON和JavaScript之间的区别。JSON是一种类似于XML或SOAP的数据格式。你不需要使用JavaScript来阅读它。PHP、Ruby、Java、Python和其他语言对JSON有很好的支持。通常,JSON是通过HTTP传递的。
所以,每个人,谁知道如何查看页面的源代码,可以简单地复制这些参数,并以他们想要的方式使用它们。
。
如果你的服务提供商要求你使用某种类型的密钥,我真的怀疑他们是否想让你在浏览器中这样做。由于跨域限制,你可能甚至不被允许发出请求(大多数浏览器都不允许你发出请求(尤其是POST),请求的域名不是你所请求的域名)。
我的猜测是,您将需要在服务器端与您的提供者一起进行处理。如果您的提供商有文档,我会参考它。否则,看看是否可以让他们的开发人员来帮助您。
https://stackoverflow.com/questions/10377085
复制相似问题