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

Fin*_*las 47 javascript authentication client-side

例如,看看这个Facebook插件.

在客户端,API密钥清晰可见.是什么阻止其他用户获取此密钥并在其他网站上使用此功能?

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

如果我要创建类似的东西,我将如何保护身份验证过程?

我希望尽可能多地使用某种形式的服务器身份验证来完成这项工作.任何链接或建议将不胜感激.

更新

关于我发现有用的API密钥的类似问题.

Pis*_*3.0 12

用三个词来说:服务器端验证.当您使用对于给定站点不正确的密钥时,FB本身将抛出错误.API密钥不应该是秘密的(与秘密密钥相对).

  • 诸如Firebug之类的东西/篡改数据之类的工具等......尽管这样一个API密钥听起来像是可以完成这项工作.有关同一主题的一个有趣问题可以在http://stackoverflow.com/questions/2256305/how-does-google-maps-secure-their-api-key-how-to-make-something-similar找到 (6认同)
  • 这就是我所得到的.我们如何信任域名,如果我注册了站点A,是什么阻止我使用相同的密钥创建站点B但是在发送请求之前避开标题? (5认同)