簡體   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