pet*_*rus 27 ajax csrf symfony
我试图在我的Symfony 2项目中实现一些ajax功能.使用jquery的$ .post我想将一些数据发送回我的控制器.但是,当我只发布数据时,没有CSRF保护,因为symfony的csrf保护似乎只适用于表单.
实现这个目的的方法是什么?
使用表单时,我可以只使用$ form-> isValid()来查明CSRF令牌是否通过.我目前正在将所有想要POST的内容放在一个表单中然后发布.这基本上意味着我只使用该表单来实现CSRF保护,这似乎是hacky.
Vit*_*ian 27
在Symfony2中,CSRF令牌默认基于会话.如果你想生成它,你只需要获得这个服务和调用生成方法:
//Symfony\Component\Form\Extension\Csrf\CsrfProvider\SessionCsrfProvider by default
$csrf = $this->get('form.csrf_provider');
//Intention should be empty string, if you did not define it in parameters
$token = $csrf->generateCsrfToken($intention);
return new Response($token);
Run Code Online (Sandbox Code Playgroud)
这个问题可能对您有用
| 归档时间: |
|
| 查看次数: |
20354 次 |
| 最近记录: |