Spec-Zone.ru › CakePHP 3.3

Класс 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
Пространство имён: 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
КомпонентRegistry, который может использовать этот компонент для ленивой загрузки компонентов
массив $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

Истинно для рекурсивного слияния, 'shallow' для простого слияния, ложно для перезаписи, по умолчанию ложно.

Исключения

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

Возвращает

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

Исключения

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']);

Параметры

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

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


$this Сам объект.

Методы, используемые из 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.3/class-Cake.Controller.Component.CsrfComponent.html

Spec-Zone.ru

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