Класс CsrfComponent
Обеспечивает защиту и валидацию CSRF.
Этот компонент добавляет токен CSRF в cookie. Значение cookie сравнивается с данными запроса или заголовком X-CSRF-Token в каждом запросе PATCH, POST, PUT или DELETE.
Если данные запроса отсутствуют или не совпадают с данными cookie, будет вызвано исключение 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
Унаследованные свойства
Краткое описание методов
- Установка cookie в ответе.
- Валидация данных запроса по отношению к токену cookie.
- Поддерживаемые события этого компонента.
- Обратный вызов при запуске.
Подробное описание методов
_setCookie()source protected устарело
_setCookie( Cake\Http\ServerRequest $request , Cake\Http\Response $response )
Установка cookie в ответе.
Также устанавливает request->params['_csrfToken'], чтобы новый сгенерированный токен был доступен в данных запроса.
Параметры
-
Cake\Http\ServerRequest$request - Объект запроса.
-
Cake\Http\Response$response - Объект ответа.
Возвращаемое значение
массивМассив изменённых запроса и ответа.
_validateToken()source protected устарело
_validateToken( Cake\Http\ServerRequest $request )
Валидация данных запроса по отношению к токену cookie.
Параметры
-
Cake\Http\ServerRequest$request - Запрос для валидации.
Исключения
Cake\Http\Exception\InvalidCsrfTokenExceptionесли токен CSRF недействителен или отсутствует.
implementedEvents()source public устарело
implementedEvents( )
Поддерживаемые события этого компонента.
Возвращаемое значение
массивПереопределяет
Cake\Controller\Component::implementedEvents() startup()source public устарело
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Привязанный контроллер.
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 - Ключ для чтения.
Возвращаемое значение
смешанный_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge = false )
Записывает ключ конфигурации.
Параметры
- строка|массив
$key - Ключ для записи.
- смешанный
$value - Значение для записи.
- булево|строка
$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 = Устанавливать флаг Secure для cookie. По умолчанию – false.
- httpOnly = Устанавливать флаг HttpOnly для cookie. По умолчанию – 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.6/class-Cake.Controller.Component.CsrfComponent.html