我对这个问题有一个确切的情况:将 csrf 保护与 RESTful API 结合起来有哪些可行的技术?
给出的一个答案是关于使用
- 使用 SSL 的基本身份验证
- 每个应用程序 1 个 API 密钥
- 身份验证
我已经确信实施 OAuth2.0,您将拥有每个应用程序的 access_token、client_id、client_secret。
但是,我不知道这实际上有助于防止 CSRF。
我的观点是,归根结底,您仍然需要 ssl。
因为在 OAuth2.0 中,当客户端应用程序代表资源所有者发送请求时,它们需要与数据参数一起发送,例如 client_id、client_secret 和 access token。
如果没有 HTTPS,如果 client_id、client_secret 和 access token 是通过泄漏或中间人知道的,那么仍然存在 CSRF 的机会,尽管由于 access token 的到期期限而很小。
我的理解正确吗?