Класс CsrfComponent
Обеспечивает защиту и валидацию CSRF.
Этот компонент добавляет маркер CSRF в cookie. Значение cookie сравнивается с данными запроса или заголовком X-CSRF-Token при каждом запросе PATCH, POST, PUT или DELETE.
Если данные запроса отсутствуют или не совпадают с данными cookie, будет выброшено исключение InvalidCsrfTokenException.
Этот компонент автоматически интегрируется с FormHelper, и при совместном использовании ваши формы будут автоматически содержать токены CSRF, когда %%%CODE_BLOCK_0%% используется в представлении.
- Cake\Controller\Component реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
-
Cake\Controller\Component\CsrfComponent
Устаревшее: 3.5.0 Используйте Cake\Http\Middleware\CsrfProtectionMiddleware вместо этого.
Расположение: Controller/Component/CsrfComponent.php
Краткое описание свойств
-
$_defaultConfigprotectedЗначение по умолчанию для обработки CSRF.array
Унаследованные свойства
Краткое описание методов
- Установка cookie в ответе.
- Валидация данных запроса по отношению к токену cookie.
- Поддерживаемые события этого компонента.
- Предупреждение, если CsrfComponent используется совместно с CsrfProtectionMiddleware
- Обработка запуска.
Подробное описание методов
_setCookie()source protected deprecated
_setCookie( Cake\Http\ServerRequest $request , Cake\Http\Response $response )
Установка cookie в ответе.
Также устанавливает request->params['_csrfToken'], чтобы недавно созданный токен был доступен в данных запроса.
Параметры
-
Cake\Http\ServerRequest$request - Объект запроса.
-
Cake\Http\Response$response - Объект ответа.
Возвращает
массивМассив изменённых запроса и ответа.
_validateToken()source protected deprecated
_validateToken( Cake\Http\ServerRequest $request )
Валидация данных запроса по отношению к токену cookie.
Параметры
-
Cake\Http\ServerRequest$request - Запрос для валидации.
Выбрасывает
Cake\Http\Exception\InvalidCsrfTokenExceptionесли токен CSRF недействителен или отсутствует.
implementedEvents()source public deprecated
implementedEvents( )
Поддерживаемые события этого компонента.
Возвращает
массивПереопределяет
Cake\Controller\Component::implementedEvents() initialize()source public deprecated
initialize( array $config )
Предупреждение, если CsrfComponent используется совместно с CsrfProtectionMiddleware
Параметры
- массив
$config - Данные конфигурации.
Переопределяет
Cake\Controller\Component::initialize() startup()source public deprecated
startup( Cake\Event\Event $event )
Обработка запуска.
Валидирует токен CSRF для данных POST. Если запрос является GET, а значение cookie отсутствует, cookie будет установлено.
После установки cookie оно будет скопировано в request->getParam('_csrfToken'), чтобы код приложения и фреймворка могли легко получить доступ к токену csrf.
Запросы RequestAction не проверяются и не будут устанавливать cookie, если оно отсутствует.
Параметры
-
Cake\Event\Event$event - Экземпляр события.
Методы, унаследованные от Cake\Controller\Component
__construct()source public
__construct( Cake\Controller\ComponentRegistry $registry , array $config = [] )
Конструктор
Параметры
-
Cake\Controller\ComponentRegistry$registry - ComponentRegistry, который может использовать этот компонент для ленивой загрузки компонентов
- массив
$configнеобязательно [] - Массив настроек конфигурации.
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
массив__get()source public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- строка
$name - Имя компонента для получения.
Возвращает
смешанноеОбъект Component или null.
getController()source public
getController( )
Получение контроллера, к которому привязан этот компонент.
Возвращает
Cake\Controller\ControllerПривязанный контроллер.
Методы, использованные из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаление одного ключа конфигурации.
Параметры
- строка
$key - Ключ для удаления.
Выбрасывает
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Чтение ключа конфигурации.
Параметры
- строка|null
$key - Ключ для чтения.
Возвращает
смешанное_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge = false )
Запись ключа конфигурации.
Параметры
- строка|массив
$key - Ключ для записи.
- смешанное
$value - Значение для записи.
- булево|строка
$mergeнеобязательно false Истинное значение для рекурсивного слияния, 'shallow' для простого слияния, ложное значение для перезаписи, по умолчанию ложное.
Выбрасывает
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
config()source public deprecated
config( string|array|null $key = null , mixed|null $value = null , boolean $merge = true )
Получение/Установка конфигурации.
Использование
Чтение всей конфигурации:
$this->config();
Чтение определённого значения:
$this->config('key'); Чтение вложенного значения:
$this->config('some.nested.key'); Установка определённого значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив|null
$keyнеобязательный null - Ключ для получения/установки или полный массив конфигураций.
- смешанный|null
$valueнеобязательный null - Значение для установки.
- boolean
$mergeнеобязательный true - Использовать рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
смешанныйЗначение конфигурации, которое считывается, или сам объект при операциях записи.
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недействительный ключ.
configShallow()source public
configShallow( string|array $key , mixed|null $value = null )
Объединение предоставленной конфигурации с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.
Установка определённого значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив
$key - Ключ для установки или полный массив конфигураций.
- смешанный|null
$valueнеобязательный null - Значение для установки.
Возвращает
$this
getConfig()source public
getConfig( string|null $key = null , mixed $default = null )
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определённого значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
- строка|null
$keyнеобязательный null - Ключ для получения или null для всей конфигурации.
- смешанный
$defaultнеобязательный null - Значение по умолчанию, если ключ не существует.
Возвращает
смешанныйДанные конфигурации по заданному ключу или null, если ключ не существует.
setConfig()source public
setConfig( string|array $key , mixed|null $value = null , boolean $merge = true )
Установка конфигурации.
Использование
Установка определённого значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив
$key - Ключ для установки или полный массив конфигураций.
- смешанный|null
$valueнеобязательный null - Значение для установки.
- boolean
$mergeнеобязательный true - Использовать рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
$this
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недействительный ключ.
Методы, используемые из Cake\Log\LogTrait
log()source public
log( mixed $msg , integer|string $level = LogLevel::ERROR , string|array $context = [] )
Удобный метод для записи сообщения в журнал. Подробнее о записи в журналы см. Log::write().
Параметры
- смешанный
$msg - Сообщение для журнала.
- целое число|строка
$levelнеобязательный LogLevel::ERROR - Уровень ошибки.
- строка|массив
$contextнеобязательный [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanРезультат записи в журнал.
Подробное описание свойств
$_defaultConfigsource
protected массив
Конфигурация по умолчанию для обработки CSRF.
- cookieName = Имя cookie для отправки.
- expiry = Время действия CSRF-токен. По умолчанию — сессия браузера.
- secure = Указывает, будет ли cookie установлена с флагом Secure. По умолчанию — false.
- httpOnly = Указывает, будет ли cookie установлена с флагом HttpOnly. По умолчанию — false.
- field = Поле формы для проверки. Изменение этого значения также потребует настройки FormHelper.
[
'cookieName' => 'csrfToken',
'expiry' => 0,
'secure' => false,
'httpOnly' => false,
'field' => '_csrfToken',
]
© 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.Controller.Component.CsrfComponent.html