【发布时间】:2011-08-29 16:31:45
【问题描述】:
我正在尝试寻找是否有防止 CSRF 出现在客户网站上嵌入的 javascript 小部件上的好方法。
该小部件将使最终用户能够通过 JSONP 向 PHP 服务器发出针对我们客户帐户的请求,该服务器将这些请求代理到我们的(非公共)API。
到目前为止,我还没有想出万无一失的方法来确保所有请求都来自我们客户的网站。我的一些想法:
- 在服务器端生成并与每个后续 JSONP 请求一起传回的令牌(但不确定如何验证初始请求,因为第一个令牌在 JS 中是可读的,任何人都可以请求“下一个”令牌)李>
- 检查Referer标头(不可靠,可能被欺骗或根本不被浏览器传递)
- 使用 SSL(当然会帮助但不能解决 CSRF 的问题)
这有可能吗?我遇到了Fotomoto's widget,它似乎允许我们正在寻找的相同类型的功能,但不确定他们是如何做到的。
【问题讨论】: