Класс CsrfComponent
Обеспечивает защиту и проверку CSRF.
Этот компонент добавляет маркер CSRF в куки. Значение куки сравнивается с данными запроса или заголовком X-CSRF-Token в каждом запросе PATCH, POST, PUT или DELETE.
Если данные запроса отсутствуют или не совпадают с данными куки, будет поднято исключение InvalidCsrfTokenException.
Этот компонент автоматически интегрируется с FormHelper, и при совместном использовании ваши формы будут автоматически содержать токены CSRF, когда $this->Form->create(...) используется в представлении.
- 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
Унаследованные свойства
Краткое описание методов
- _setCookie() protectedУстановить куки в ответе.
- _validateToken() protectedПроверить данные запроса на соответствие токену куки.
- implementedEvents() publicПоддерживаемые события этого компонента.
- startup() publicОбработчик запуска.
Подробное описание методов
_setCookie()source protected
_setCookie( Cake\Http\ServerRequest $request , Cake\Http\Response $response )
Установить куки в ответе.
Также устанавливает request->params['_csrfToken'], чтобы новый сгенерированный токен был доступен в данных запроса.
Параметры
-
Cake\Http\ServerRequest$request - Объект запроса.
-
Cake\Http\Response$response - Объект ответа.
_validateToken()source protected
_validateToken( Cake\Http\ServerRequest $request )
Проверить данные запроса на соответствие токену куки.
Параметры
-
Cake\Http\ServerRequest$request - Запрос для проверки.
Исключения
Cake\Network\Exception\InvalidCsrfTokenExceptionесли токен CSRF недействителен или отсутствует.
implementedEvents()source public
implementedEvents( )
Поддерживаемые события этого компонента.
Возвращает
массивПереопределяет
Cake\Controller\Component::implementedEvents() startup()source public
startup( Cake\Event\Event $event )
Обработчик запуска.
Проверяет токен CSRF для данных POST. Если запрос является GET запросом, а значение куки отсутствует, куки будет установлено.
После установки куки он будет скопирован в request->getParam('_csrfToken'), чтобы код приложения и фреймворка мог легко получить доступ к токену csrf.
Запросы RequestAction не проверяются и не устанавливают куки, если она отсутствует.
Параметры
-
Cake\Event\Event$event - Экземпляр события.
Методы унаследованные от Cake\Controller\Component
__construct()source public
__construct( Cake\Controller\ComponentRegistry $registry , array $config [] )
Конструктор
Параметры
-
Cake\Controller\ComponentRegistry$registry - КомпонентRegistry, который может использовать этот компонент для ленивой загрузки компонентов
- массив
$configнеобязательно [] - Массив параметров конфигурации.
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
массив__get()source public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- строка
$name - Имя компонента для получения.
Возвращает
mixedОбъект компонента или null.
getController()source public
getController( )
Получить контроллер, к которому привязан этот компонент.
Возвращает
Cake\Controller\ControllerПривязанный контроллер.
initialize()source public
initialize( array $config )
Метод-обработчик конструктора.
Реализуйте этот метод, чтобы избежать необходимости перезаписывать конструктор и вызывать родительский.
Параметры
- массив
$config - Параметры конфигурации, предоставленные этому компоненту.
Методы используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаляет один ключ конфигурации.
Параметры
- строка
$key - Ключ для удаления.
Исключения
Cake\Core\Exception\Exceptionпри попытке перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Считывает ключ конфигурации.
Параметры
- строка|null
$key - Ключ для чтения.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Записывает ключ конфигурации.
Параметры
- строка|массив
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|строка
$mergeнеобязательно false True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Исключения
Cake\Core\Exception\Exceptionпри попытке перезаписи существующей конфигурации
config()source public
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–2017 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.4/class-Cake.Controller.Component.CsrfComponent.html