如何使用客户端JavaScript保持API密钥的秘密?

例如,看看这个Facebook插件。

在客户端,API密钥清晰可见。 什么是阻止另一个用户获得此密钥,并在另一个网站上使用此function?

我认为一个非常天真的实现将检查域的请求来自但这样的事情很容易造假。

如果我要创build类似的东西,我将如何去确保身份validation过程?

尽pipe某些forms的服务器authentication肯定会被要求,我还是希望尽可能把这些工作作为客户端。 任何链接或build议将不胜感激。

更新

关于API密钥的类似问题 ,我觉得很有用。

用三个字来说:服务器端validation。 当您使用给定站点不正确的密钥时,FB本身会引发错误。 API密钥不应该是秘密的(而不是秘密密钥)。

我自己并没有这样做,但我知道你担心的这种攻击叫做跨站请求伪造(CSRF)。 维基百科的文章就如何防止它提供了一些提示。