繁体   English   中英

Symfony 3 CSRF令牌

[英]Symfony 3 csrf token

如何获取或设置symfony的csrf_token? 这是我的代码,我不知道如何使用csrf_token,

$username = $request->request->get('username');
$password = $request->request->get('password');

    if($request->isMethod('POST')){
        $headers = array('Accept' => 'application/json');
        $query = array('email' => $username, 'mdp' => $password);

        $url = ' /**/ ';
        $body = Unirest\Request\Body::json($query);

        $response = Unirest\Request::post('$url',$headers,$body);

        return new Response(json_encode($response));

    }

    return $this->render('AppBundle:Default:index.html.twig');

谢谢!

默认情况下,Symfony不会为每个POST请求提供CSRF令牌。 我的建议是使用开箱即用的Symfony表单为您提供CSRF保护。 在处理表单提交,添加验证规则,呈现表单等等时,这也将使您的生活更加轻松。

巴托斯的答案是可能的。 但是,如果您不想使用Symfony表单,则可以在树枝模板中执行以下操作:

<input type="hidden" name="_csrf_token" value="{{ csrf_token('my_form') }}" />

在您的控制器中:

$csrfTtoken =  $request->request->get('_csrf_token');
if ($this->isCsrfTokenValid('my_form', $csrfTtoken)) {
    // csrf token is valid!
}

暂无
暂无

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

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