Spec-Zone.ru › CakePHP 3.2

Класс 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
Extended by Cake\Controller\Component\CsrfComponent
Пространство имён: Cake\Controller\Component
Расположение: Controller/Component/CsrfComponent.php

Краткое описание свойств

  • $_defaultConfig protected
    array
    Конфигурация по умолчанию для обработки CSRF.

Унаследованные свойства

  • _componentMap, _registry, components, request, response _config, _configInitialized

Краткое описание методов

  • _setCookie() protected
    Установка cookie в ответе.
  • _validateToken() protected
    Валидация данных запроса по отношению к токену cookie.
  • implementedEvents() public
    Поддерживаемые события этим компонентом.
  • startup() public
    Обработчик запуска.

Подробное описание методов

_setCookie()source protected

_setCookie( Cake\Network\Request $request , Cake\Network\Response $response )

Установка cookie в ответе.

Также устанавливает request->params['_csrfToken'], чтобы новый токен был доступен в данных запроса.

Параметры

Cake\Network\Request $request
Объект запроса.
Cake\Network\Response $response
Объект ответа.

_validateToken()source protected

_validateToken( Cake\Network\Request $request )

Валидация данных запроса по отношению к токену cookie.

Параметры

Cake\Network\Request $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, а значение cookie отсутствует, cookie будет установлено.

После установки cookie он будет скопирован в request->params['_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.

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

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
Значение для установки.
булево $merge необязательно true
Рекурсивно сливать или перезаписывать существующую конфигурацию, по умолчанию true.

Возвращает

смешанное
Значение конфигурации, которое читается, или сам объект при операциях записи.

Исключения

Cake\Core\Exception\Exception
При попытке установить недействительный ключ.
END_OF_DOCUMENT_MARKER

configShallow()source public

configShallow( string|array $key , mixed|null $value null )

Объедините предоставленные настройки с существующими. В отличие от config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.

Установление конкретного значения:

$this->config('key', $value);

Установление вложенного значения:

$this->config('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->config(['one' => 'value', 'another' => 'value']);

Параметры

строка|массив $key
Ключ для установки или полный массив настроек.
смешанный|null $value необязательно null
Значение для установки.

Возвращаемое значение


$this Объект сам по себе.

Методы, используемые из 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 = Флаг secure для cookie. По умолчанию — false.
    • httpOnly = Флаг HttpOnly для cookie. По умолчанию — false.
    • field = Поле формы для проверки. Изменение этого значения также потребует настройки FormHelper.
[
    'cookieName' => 'csrfToken',
    'expiry' => 0,
    'secure' => false,
    'httpOnly' => false,
    'field' => '_csrfToken',
]

© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Controller.Component.CsrfComponent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API