Spec-Zone.ru › CakePHP 3.1

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

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

_setCookiesource protected

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

Установить cookie в ответе.

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

Параметры

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

_validateTokensource protected

_validateToken( Cake\Network\Request $request )

Проверить данные запроса на соответствие токену cookie.

Параметры

Cake\Network\Request $request
Запрос для проверки.

Исключения

Cake\Network\Exception\InvalidCsrfTokenException
при некорректном или отсутствующем токене CSRF.

implementedEventssource public

implementedEvents( )

Поддерживаемые события этого компонента.

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

array
массив

Переопределяет

Cake\Controller\Component::implementedEvents()

startupsource 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

__constructsource public

__construct( Cake\Controller\ComponentRegistry $registry , array $config [] )

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry
ComponentRegistry, который может использовать этот компонент для ленивой загрузки своих компонентов
массив $config необязательно []
Массив параметров конфигурации.

__debugInfosource public

__debugInfo( )

Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.

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

array
массив

__getsource public

__get( string $name )

Магический метод для ленивой загрузки $components.

Параметры

строка $name
Имя компонента для получения.

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

mixed
Объект Component или null.

initializesource public

initialize( array $config )

Метод обработки конструктора.

Реализуйте этот метод, чтобы избежать необходимости перезаписывать конструктор и вызывать родительский.

Параметры

массив $config
Параметры конфигурации, предоставленные для этого компонента.

Методы, используемые из Cake\Core\InstanceConfigTrait

_configDeletesource protected

_configDelete( string $key )

Удалить единственный ключ конфигурации

Параметры

строка $key
Ключ для удаления.

Исключения

Cake\Core\Exception\Exception
при попытке перезаписи существующей конфигурации

_configReadsource protected

_configRead( string|null $key )

Чтение переменной конфигурации

Параметры

строка|null $key
Ключ для чтения.

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

mixed
смешанный тип

_configWritesource protected

_configWrite( string|array $key , mixed $value , boolean|string $merge false )

Записать переменную конфигурации

Параметры

строка|массив $key
Ключ для записи.
смешанный тип $value
Значение для записи.
boolean|строка $merge необязательно false
True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.

Исключения

Cake\Core\Exception\Exception
при попытке перезаписи существующей конфигурации

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

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

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

Исключения

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

configShallowsource 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
Значение для установки.

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

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

Методы, используемые из Cake\Log\LogTrait

logsource 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',
]

Унаследованные свойства от Cake\Controller\Component

$_componentMapsource

protected array

Таблица поиска компонентов, используемая для ленивой загрузки объектов компонентов.

[]

$_registrysource

protected Cake\Controller\ComponentRegistry

Класс реестра компонентов, используемый для ленивой загрузки компонентов.

$componentssource

public array

Другие компоненты, используемые этим компонентом.

[]

$requestsource

public Cake\Network\Request

Объект запроса

$responsesource

public Cake\Network\Response

Объект ответа

Используемые свойства из Cake\Core\InstanceConfigTrait

$_configsource

protected array

Настройка во время выполнения

[]

$_configInitializedsource

protected boolean

Настройка свойства конфигурации значениями по умолчанию

false

© 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.1/class-Cake.Controller.Component.CsrfComponent.html

Spec-Zone.ru

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