Spec-Zone.ru › CakePHP 4.2

Класс 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#sychronizer-token-pattern

Константы

  • int
    TOKEN_VALUE_LENGTH
    32

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

  • $_config protected
    array

    Настройки для обработки 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 $config = [])

Конструктор

Параметры

array $config optional

Настройки. Смотрите $_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

$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.2/class-Cake.Http.Middleware.SessionCsrfProtectionMiddleware.html

Spec-Zone.ru

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