【发布时间】:2017-12-02 04:33:06
【问题描述】:
我有一个静态网站,由 CDN 提供服务,通过 AJAX 与 API 通信。如何防范 CSRF?
由于我无法控制静态网站的服务方式,因此当有人加载我的静态网站时我无法生成 CSRF 令牌(并将令牌插入表单或与我的 AJAX 请求一起发送)。我可以创建一个GET 端点来检索令牌,但似乎攻击者可以简单地访问该端点并使用它提供的令牌?
有没有一种有效的方法可以用这个堆栈来防止 CSRF?
其他细节:这里的身份验证是完全独立的。我想要 CSRF 保护的一些 API 请求是经过身份验证的端点,还有一些是公共 POST 请求(但我想确认它们来自我的站点,而不是其他人的)
【问题讨论】:
-
“通过 AJAX 与 API 通信...不涉及服务器”。有一个服务器,用于 API。不是你自己的服务器/API吗?
-
是的——我会在问题中澄清这一点。我假设 CDN 也有服务器?但我控制不了他们。我确实可以完全控制 API 服务器。
标签: ajax security csrf csrf-protection