我正在使用php / symfony2开发RESTful API。
Symfony2提供了开箱即用的CSRF保护,它在使用普通表单数据时工作正常(它将CSRF令牌传递给表单,当发回时,它需要嵌入表单中的相同令牌)。
但是,如果您开发RESTful API,此解决方案不适用于此目的,我在后端< - >前端之间的通信纯粹基于JSON。因此我禁用了CSRF。
我知道没有CSRF令牌是不安全的,所以我想知道什么是使用RESTful API实现CSRF的最佳方式。
一个想法是拥有特定的网址,例如/ api / generate / csrf,可由前端调用,然后将令牌附加到json请求。它听起来不是最安全的方式,因为技术上可以由任何人生成令牌。
在开发RESTful API时,解决CSRF问题的最佳方法是什么。
干杯, 理查德
答案 0 :(得分:1)
请记住,当您的REST客户端使用基于会话的身份验证时,您只需要CSRF保护,否则CSRF保护将无法帮助您。
如果您的请求使用基于会话的身份验证,我会将CSRF令牌作为标头包含在内。类似的东西:
CSRF-Token: dfsa0jr3n2io20a;
答案 1 :(得分:0)
我也正在研究这个问题。这是我的original question。
到目前为止,我有一个理论上的解决方案,但我不太确定它会起作用。也许有人可以评论。