我可以限制从javascript小部件到合作伙伴网站域的API访问吗?

Asa*_*aph 5 javascript security api client-side

我想开发一个客户端javascript小部件,该小部件可能仅包含在授权合作伙伴网站上。javascript小部件将使REST调用返回主网站。合作伙伴网站应该能够使用javascript小部件,而无需安装任何服务器端组件。未经授权的站点使用给定密钥的任何尝试均应失败。显然,传递给Web浏览器的任何API密钥最终都将很容易受到攻击,即使它们被某种方式掩盖了。

我寻求想法的一个现实世界示例是Google Maps Javascript API v3,它施加了配额限制,并允许API客户端将给定密钥的访问限制为指定域。但是,似乎此限制是基于引荐来源的,因此似乎很难伪造。使用此系统的网站似乎很容易受到攻击者的攻击,因为他们使用其密钥(在HTML中以纯文本显示)并且运行足够的API调用来超过配额。同样值得注意的是,Google区分了“浏览器密钥”和“服务器密钥”。

这是我发现的一些相关问题,没有一个令人鼓舞的答案:

是否存在解决此问题的现有设计模式,标准或加密方案?还是没有一些服务器端组件就无法实现这一目标?