Класс CsrfComponent
Обеспечивает защиту и проверку CSRF.
Этот компонент добавляет токен CSRF в cookie. Значение cookie сравнивается с данными запроса или с заголовком X-CSRF-Token при каждом запросе PATCH, POST, PUT или DELETE.
Если данные запроса отсутствуют или не совпадают с данными cookie, будет вызвано исключение InvalidCsrfTokenException.
Этот компонент автоматически интегрируется с FormHelper, и при совместном использовании ваши формы будут автоматически иметь токены CSRF, когда $this->Form->create(...) используется в представлении.
- Cake\Controller\Component implements Cake\Event\EventListenerInterface uses 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 - Имя компонента для получения.
Возвращает
смешанныйОбъект компонента или 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 - Значение для записи.
- boolean|строка
$mergeнеобязательно false True для рекурсивной склейки, 'shallow' для простой склейки, false для перезаписи, по умолчанию false.
Выбрасывает
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']);
Параметры
- string|array|null
$keyопционально null - Ключ для получения/установки или массив конфигураций.
- mixed|null
$valueопционально null - Значение для установки.
- boolean
$mergeопционально true - Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
mixedЗначение конфигурации для чтения, или сам объект при операциях записи.
Исключения
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']);
Параметры
- string|array
$key - Ключ для установки или массив конфигураций.
- mixed|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'); Параметры
- string|null
$keyопционально null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultопционально null - Значение по умолчанию, если ключ не найден.
Возвращает
mixedЗначение конфигурации для чтения.
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']);
Параметры
- string|array
$key - Ключ для установки или массив конфигураций.
- mixed|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().
Параметры
- mixed
$msg - Сообщение для записи в журнал.
- integer|string
$levelопционально LogLevel::ERROR - Уровень ошибки.
- string|array
$contextопционально [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanРезультат записи в журнал.
Подробное описание свойств
$_defaultConfigsource
protected array
Конфигурация по умолчанию для обработки 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.7/class-Cake.Controller.Component.CsrfComponent.html