繁体   English   中英

CSRF和RESTful API(symfony2,php)

[英]CSRF and RESTful API (symfony2, php)

我正在使用php / symfony2开发RESTful API。

Symfony2具备开箱即用的CSRF保护功能,并且在使用常规表单数据时可以正常工作(它将CSRF令牌传递到表单,并且在回发时它期望嵌入在表单中的令牌相同)。

但是,如果您开发RESTful API,则此解决方案不适合您的目的,因为我的backend <-> frontend之间的通信完全基于JSON。 因此,我禁用了CSRF。

我知道没有CSRF令牌是不安全的,所以我想知道使用带有RESTful API的CSRF的最佳方法是什么。

想到的一个想法是拥有特定的URL,例如/ api / generate / csrf,可以由前端调用,然后将令牌附加到json请求。 听起来并不是最安全的方法,因为技术上任何人都可以生成令牌。

开发RESTful API时,解决CSRF问题的最佳方法是什么。

干杯,理查德

请记住,只有当REST客户端使用基于会话的身份验证时,才需要CSRF保护,否则CSRF保护将无济于事。

如果您的请求确实使用基于会话的身份验证,则将CSRF令牌作为标头包含在内。 就像是:

CSRF-Token: dfsa0jr3n2io20a;

我也在解决这个问题。 这是我最初的问题

到目前为止,我已经有了一个理论上的解决方案,但是我不确定它是否会起作用。 也许有人可以发表评论。

  1. 将CSRF TOKEN添加到JS应用程序可读的API响应cookie中;
  2. JS应用程序将其与请求一起作为X-CSRF-TOKEN标头值发送;
  3. 验证API上的CSRF令牌。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM