Класс CsrfProtectionMiddleware
Обеспечивает защиту от CSRF и валидацию.
Этот промежуточный программный модуль добавляет маркер CSRF в cookie. Значение cookie сравнивается с данными запроса или с заголовком X-CSRF-Token при каждом запросе PATCH, POST, PUT или DELETE.
Если данные запроса отсутствуют или не совпадают с данными cookie, будет вызвано исключение InvalidCsrfTokenException.
Этот промежуточный программный модуль автоматически интегрируется с FormHelper, и при совместном использовании формы будут автоматически содержать маркеры CSRF, когда $this->Form->create(...) используется в представлении.
Краткое описание свойств
-
$_configprotectedНастройкаarray -
$_defaultConfigprotectedЗначения по умолчанию для обработки CSRF.array -
$whitelistCallbackprotectedОбработчик для определения того, нужно ли пропускать проверку маркера для конкретного запроса.callable|null
Краткое описание методов
- __construct() publicКонструктор
- __invoke() publicПроверяет и устанавливает маркер CSRF в зависимости от HTTP-метода.
- _addTokenCookie() protectedДобавляет маркер CSRF в куки ответа.
- _addTokenToRequest() protectedДобавляет маркер CSRF в параметры запроса.
- _createToken() protectedСоздаёт новый маркер для защиты от CSRF
- _validateAndUnsetTokenField() protectedПроверяет, является ли запрос POST, PUT, DELETE или PATCH, и валидирует маркер CSRF
- _validateToken() protectedПроверяет данные запроса по отношению к маркеру в cookie.
- whitelistCallback() publicУстанавливает обработчик для пропуска проверки маркера для конкретного запроса.
Подробное описание методов
__construct()source public
__construct( array $config = [] )
Конструктор
Параметры
- массив
$configнеобязательно [] - Параметры конфигурации. Допустимые ключи см. в $_defaultConfig.
__invoke()source public
__invoke( Cake\Http\ServerRequest $request , Cake\Http\Response $response , callable $next )
Проверяет и устанавливает маркер CSRF в зависимости от HTTP-метода.
Параметры
-
Cake\Http\ServerRequest$request - Запрос.
-
Cake\Http\Response$response - Ответ.
- обратный вызов
$next - Обратный вызов для вызова следующего промежуточного программного модуля.
Возвращает
Cake\Http\ResponseОтвет
_addTokenCookie()source protected
_addTokenCookie( string $token , Cake\Http\ServerRequest $request , Cake\Http\Response $response )
Добавляет маркер CSRF в куки ответа.
Параметры
- строка
$token - Маркер для добавления.
-
Cake\Http\ServerRequest$request - Запрос для проверки.
-
Cake\Http\Response$response - Ответ.
Возвращает
Cake\Http\ResponseИзменённый ответ.
_addTokenToRequest()source protected
_addTokenToRequest( string $token , Cake\Http\ServerRequest $request )
Добавляет маркер CSRF в параметры запроса.
Параметры
- строка
$token - Маркер для добавления.
-
Cake\Http\ServerRequest$request - Запрос, который требуется дополнить.
Возвращает
Cake\Http\ServerRequestИзменённый запрос
_createToken()source protected
_createToken( )
Создаёт новый маркер для защиты от CSRF
Возвращает
строка_validateAndUnsetTokenField()source protected
_validateAndUnsetTokenField( Cake\Http\ServerRequest $request )
Проверяет, является ли запрос POST, PUT, DELETE или PATCH, и валидирует маркер CSRF
Параметры
-
Cake\Http\ServerRequest$request - Объект запроса.
Возвращает
Cake\Http\ServerRequest_validateToken()source protected
_validateToken( Cake\Http\ServerRequest $request )
Проверяет данные запроса по отношению к маркеру в cookie.
Параметры
-
Cake\Http\ServerRequest$request - Запрос для проверки.
Выбрасывает
Cake\Http\Exception\InvalidCsrfTokenExceptionЕсли маркер CSRF недействителен или отсутствует.
whitelistCallback()source public
whitelistCallback( callable $callback )
Устанавливает обратный вызов для пропуска проверки маркера для конкретного запроса.
Проверка маркера CSRF будет пропущена, если обратный вызов вернёт true.
Параметры
- обратный вызов
$callback - Функция обратного вызова.
Возвращает
$this
Подробное описание свойств
$_defaultConfigsource
protected массив
Значения по умолчанию для обработки CSRF.
-
cookieNameИмя куки для отправки.-
expiryЗначение, совместимое со строим, указывающее, как долго должен действовать маркер CSRF. По умолчанию - сессия браузера. -
secureУказывает, будет ли куки установлен с флагом Secure. По умолчанию - false. -
httpOnlyУказывает, будет ли куки установлен с флагом HttpOnly. По умолчанию - false. -
fieldПоле формы для проверки. Изменение этого поля потребует настройки FormHelper.
-
[
'cookieName' => 'csrfToken',
'expiry' => 0,
'secure' => false,
'httpOnly' => false,
'field' => '_csrfToken',
] $whitelistCallbacksource
protected обратный вызов|null
Обработчик для определения того, нужно ли пропускать проверку маркера для конкретного запроса.
Проверка маркера CSRF будет пропущена, если обратный вызов вернёт true.
© 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/3.8/class-Cake.Http.Middleware.CsrfProtectionMiddleware.html