Класс CsrfProtectionMiddleware
Обеспечивает защиту от CSRF и валидацию.
Этот middleware добавляет токен CSRF в куки. Значение куки сравнивается с данными запроса или с заголовком X-CSRF-Token для каждого запроса PATCH, POST, PUT или DELETE.
Если данные запроса отсутствуют или не совпадают с данными куки, будет возбуждено исключение InvalidCsrfTokenException.
Этот middleware автоматически интегрируется с FormHelper, и при совместном использовании ваши формы будут автоматически иметь токены CSRF, когда $this->Form->create(...) используется в представлении.
Краткое описание свойств
-
$_configprotectedНастройкаarray -
$_defaultConfigprotectedЗначения по умолчанию для обработки CSRF.array
Краткое описание методов
- __construct() publicКонструктор
- __invoke() publicПроверяет и устанавливает токен CSRF в зависимости от HTTP-глагола.
- _addTokenCookie() protectedДобавление токена CSRF в куки ответа.
- _addTokenToRequest() protectedДобавление токена CSRF в параметры запроса.
- _createToken() protectedСоздание нового токена для защиты от CSRF
- _validateAndUnsetTokenField() protectedПроверяет, является ли запрос POST, PUT, DELETE или PATCH, и валидирует токен CSRF
- _validateToken() protectedВалидация данных запроса по отношению к токену куки.
Подробное описание методов
__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 - Функция-обработчик для вызова следующего middleware.
Возвращает
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 )
Валидация данных запроса по отношению к токену куки.
Параметры
-
Cake\Http\ServerRequest$request - Запрос для валидации.
Исключения
Cake\Network\Exception\InvalidCsrfTokenExceptionПри невалидном или отсутствующем токене CSRF.
Подробное описание свойств
$_defaultConfigsource
protected массив
Значения по умолчанию для обработки CSRF.
-
cookieName= Имя куки для отправки.-
expiry= Время действия токена CSRF. По умолчанию — сеанс браузера. -
secure= Флаг Secure для куки. По умолчанию — false. -
httpOnly= Флаг HttpOnly для куки. По умолчанию — false. -
field= Поле формы для проверки. Изменение этого поля также потребует настройки FormHelper.
-
[
'cookieName' => 'csrfToken',
'expiry' => 0,
'secure' => false,
'httpOnly' => false,
'field' => '_csrfToken',
]
© 2005–2018 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.5/class-Cake.Http.Middleware.CsrfProtectionMiddleware.html