Spec-Zone.ru › CakePHP 3.4

Класс 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
Extended by Cake\Controller\Component\CsrfComponent
Пространство имен: Cake\Controller\Component
Устаревший: 3.5.0 Используйте Cake\Http\Middleware\CsrfProtectionMiddleware вместо этого.
Расположение: Controller/Component/CsrfComponent.php

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

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

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

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

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

  • _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
при попытке перезаписи существующей конфигурации
END_OF_DOCUMENT_MARKER

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

Spec-Zone.ru

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