Spec-Zone.ru › CakePHP 4.4

Класс SessionCsrfProtectionMiddleware

Обеспечивает защиту от CSRF с помощью токенов на основе сессии.

Этот middleware добавляет токен CSRF в сессию. Каждый запрос должен содержать токен в данных запроса или в заголовке X-CSRF-Token для каждого запроса PATCH, POST, PUT или DELETE. Это следует шаблону «синхронизирующего токена».

Если данные запроса отсутствуют или не совпадают с данными сессии, будет поднято исключение InvalidCsrfTokenException.

Этот middleware автоматически интегрируется с FormHelper, и при совместном использовании с ним ваши формы будут автоматически содержать токены CSRF при использовании $this->Form->create(...) в представлении.

Если вы используете этот middleware, не используйте также CsrfProtectionMiddleware.

Пространство имен: Cake\Http\Middleware
См.: https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#synchronizer-token-pattern

Постоянные значения

  • int
    TOKEN_VALUE_LENGTH
    32

Краткое описание свойств

  • $_config protected
    array<string, mixed>

    Настройка обработки CSRF.

  • $skipCheckCallback protected
    callable|null

    Обратный вызов для принятия решения о пропуске проверки токена для конкретного запроса.

Краткое описание методов

  • __construct() public

    Конструктор

  • createToken() public

    Создать новый токен для использования в защите от CSRF

  • process() public

    Проверяет и устанавливает токен CSRF в зависимости от HTTP-метода.

  • saltToken() public

    Применить энтропию к токену CSRF

  • skipCheckCallback() public

    Установить обратный вызов для пропуска проверки токена для конкретного запроса.

  • unsaltToken() protected

    Удалить соль из токена CSRF.

  • unsetTokenField() protected

    Удалить токен защиты от CSRF из данных запроса.

  • validateToken() protected

    Проверить данные запроса на соответствие токену куки.

Подробное описание методов

__construct() public

__construct(array<string, mixed> $config = [])

Конструктор

Параметры

array<string, mixed> $config необязательно

Параметры конфигурации. См. $_config для допустимых ключей.

createToken() public

createToken(): string

Создать новый токен для использования в защите от CSRF

Этот токен представляет собой просто уникальное случайное значение, так как значение сравнения хранится в сессии, где его нельзя изменить.

Возвращает

string

process() public

process(ServerRequestInterface $request, RequestHandlerInterface $handler): Psr\Http\Message\ResponseInterface

Проверяет и устанавливает токен CSRF в зависимости от HTTP-метода.

Обрабатывает входящий запрос сервера, чтобы получить ответ. Если он не может сгенерировать ответ сам, он может делегировать это предоставленному обработчику запроса.

Параметры

ServerRequestInterface $request

Запрос.

RequestHandlerInterface $handler

Обработчик запроса.

Возвращает

Psr\Http\Message\ResponseInterface

saltToken() public

saltToken(string $token): string

Применить энтропию к токену CSRF

Для предотвращения BREACH применяется случайное значение соли к токену. При сравнении токена с сессией токен должен быть без соли.

Параметры

string $token

Токен для добавления соли.

Возвращает

string

skipCheckCallback() public

skipCheckCallback(callable $callback): $this

Установить обратный вызов для пропуска проверки токена для конкретного запроса.

Проверка токена защиты от CSRF будет пропущена, если обратный вызов вернёт true для текущего запроса.

Параметры

callable $callback

Вызываемый объект.

Возвращает

$this

unsaltToken() protected

unsaltToken(string $token): string

Удалить соль из токена CSRF.

Если токен не TOKEN_VALUE_LENGTH * 2, это старое значение без соли, которое поддерживается для обратной совместимости.

Параметры

string $token

Токен, который может иметь соль.

Возвращает

string

unsetTokenField() protected

unsetTokenField(Psr\Http\Message\ServerRequestInterface $request): Psr\Http\Message\ServerRequestInterface

Удалить токен защиты от CSRF из данных запроса.

Это гарантирует, что токен не приведет к ошибкам при защите от изменения формы.

Параметры

Psr\Http\Message\ServerRequestInterface $request

Объект запроса.

Возвращает

Psr\Http\Message\ServerRequestInterface

validateToken() protected

validateToken(Psr\Http\Message\ServerRequestInterface $request, Cake\Http\Session $session): void

Проверить данные запроса на соответствие токену куки.

Параметры

Psr\Http\Message\ServerRequestInterface $request

Запрос для проверки.

Cake\Http\Session $session

Объект сессии.

Возвращает

void

Исключения

Cake\Http\Exception\InvalidCsrfTokenException
При недействительном или отсутствующем токен CSRF.

Подробное описание свойств

$_config protected

Настройка обработки CSRF.

  • key Ключ сессии для использования. По умолчанию csrfToken
    • field Поле формы для проверки. Изменение этого также потребует настройки FormHelper.

Тип

array<string, mixed>

$skipCheckCallback protected

Обратный вызов для принятия решения о пропуске проверки токена для конкретного запроса.

Проверка токена защиты от CSRF будет пропущена, если обратный вызов вернет true.

Тип

callable|null

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.Http.Middleware.SessionCsrfProtectionMiddleware.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API