例如,请查看此Facebook插件。
在客户端,API密钥清晰可见。什么阻止其他用户获取此密钥并在其他网站上使用此功能?
我认为一个非常天真的实现方法是检查请求来自哪个域,但这样的事情很容易被伪造。
如果我要创建类似的东西,我将如何保护身份验证过程?
我希望尽可能多地使用某种形式的服务器身份验证来完成这项工作。任何链接或建议将不胜感激。
更新
我发现有用的API密钥类似question。
答案 0 :(得分:12)
用三个词来说:服务器端验证。当您使用对于给定站点不正确的密钥时,FB本身将抛出错误。 API密钥不应该是秘密的(而不是秘密密钥)。
答案 1 :(得分:3)
我自己没有这样做,但我知道您担心的攻击类型称为跨站点请求伪造(CSRF)。 Wikipedia article上提供了一些关于如何防止它的提示。