РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
82 of 1361 menu

Функция csrf_token

Функция csrf_token используется в шаблонах Twig для генерации скрытого токена, который защищает формы от атак CSRF (Cross-Site Request Forgery). Первым параметром передаётся строковый идентификатор токена, обычно совпадающий с именем действия или формы. Вторым необязательным параметром можно указать область видимости токена.

Синтаксис

{{ csrf_token(id) }} {{ csrf_token(id, scope) }}

Пример

Давайте сгенерируем CSRF-токен для формы добавления статьи и выведем его в скрытом поле:

<form action="{{ path('article_create') }}" method="post"> <input type="hidden" name="_token" value="{{ csrf_token('article_form') }}"> <input type="text" name="title"> <button type="submit">Save</button> </form>

Результат выполнения кода:

<form action="/article/create" method="post"> <input type="hidden" name="_token" value="a1b2c3d4e5f6..."> <input type="text" name="title"> <button type="submit">Save</button> </form>

Пример

Давайте проверим токен в контроллере с помощью метода isCsrfTokenValid:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/create', name: 'article_create', methods: ['POST'])] public function create(Request $request): Response { $token = $request->request->get('_token'); if (!$this->isCsrfTokenValid('article_form', $token)) { return new Response('Invalid CSRF token', 403); } return new Response('Article created'); } } ?>

Результат выполнения кода при корректном токене:

"Article created"

Смотрите также

  • функция path,
    которая генерирует URL по имени маршрута
  • функция url,
    которая генерирует абсолютный URL
  • функция is_granted,
    которая проверяет права доступа пользователя
  • функция render,
    которая рендерит фрагмент шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить