我会试着解释这个问题。
有一些服务,其 API 完全在 JS (ajax/json) 中为站点合作伙伴构建。站点合作伙伴是与服务有某种合同的人。因此,对 API 的访问确实只有某些人(站点合作伙伴)。我要做的是为服务创建一些授权方式,以找出真正来自站点合作伙伴的请求。
复杂之处在于 API 完全用 JS 编写。这就是为什么 HTTP 身份验证、秘密 API 密钥、RSA 密钥交换都不适合这种类型的 API,因为服务需要一些身份验证参数来接收,唯一的方法是使用 JSON 通过 AJAX 传递它们格式。因此,每个知道如何查看页面源代码的人都可以简单地复制这些参数并以任何他们想要的方式使用它们。
具有 IP 限制的变体也不适合,至少因为站点合作伙伴可以托管在共享主机上。
我想使用一些带有一些不明确哈希的 API 密钥(仅对服务明确)+ 时间戳。但这种方法迟早会变得清晰。
无论如何,想到的一切都不完全合适。也许有人遇到过这个问题?将不胜感激任何答案。