Spec-Zone.ru › CakePHP 3.8

Класс CsrfComponent

Обеспечивает защиту и валидацию CSRF.

Этот компонент добавляет маркер CSRF в cookie. Значение cookie сравнивается с данными запроса или заголовком X-CSRF-Token при каждом запросе PATCH, POST, PUT или DELETE.

Если данные запроса отсутствуют или не совпадают с данными cookie, будет выброшено исключение InvalidCsrfTokenException.

Этот компонент автоматически интегрируется с FormHelper, и при совместном использовании ваши формы будут автоматически содержать токены CSRF, когда %%%CODE_BLOCK_0%% используется в представлении.

Cake\Controller\Component реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
Расширенный 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 deprecated
    Установка cookie в ответе.
  • _validateToken() protected deprecated
    Валидация данных запроса по отношению к токену cookie.
  • implementedEvents() public deprecated
    Поддерживаемые события этого компонента.
  • initialize() public deprecated
    Предупреждение, если CsrfComponent используется совместно с CsrfProtectionMiddleware
  • startup() public deprecated
    Обработка запуска.

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

_setCookie()source protected deprecated

_setCookie( Cake\Http\ServerRequest $request , Cake\Http\Response $response )

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

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

Параметры

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

Возвращает

массив
Массив изменённых запроса и ответа.

_validateToken()source protected deprecated

_validateToken( Cake\Http\ServerRequest $request )

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

Параметры

Cake\Http\ServerRequest $request
Запрос для валидации.

Выбрасывает

Cake\Http\Exception\InvalidCsrfTokenException
если токен CSRF недействителен или отсутствует.

implementedEvents()source public deprecated

implementedEvents( )

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

Возвращает

массив

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

Cake\Controller\Component::implementedEvents()

initialize()source public deprecated

initialize( array $config )

Предупреждение, если CsrfComponent используется совместно с CsrfProtectionMiddleware

Параметры

массив $config
Данные конфигурации.

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

Cake\Controller\Component::initialize()

startup()source public deprecated

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
Имя компонента для получения.

Возвращает

смешанное
Объект Component или null.

getController()source public

getController( )

Получение контроллера, к которому привязан этот компонент.

Возвращает

Cake\Controller\Controller
Привязанный контроллер.

Методы, использованные из 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
если пытаетесь перезаписать существующую конфигурацию
END_OF_DOCUMENT_MARKER ```

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

Параметры

строка|массив|null $key необязательный null
Ключ для получения/установки или полный массив конфигураций.
смешанный|null $value необязательный null
Значение для установки.
boolean $merge необязательный true
Использовать рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.

Возвращает

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

Исключения

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

Параметры

строка|массив $key
Ключ для установки или полный массив конфигураций.
смешанный|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');

Параметры

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

Возвращает

смешанный
Данные конфигурации по заданному ключу или null, если ключ не существует.

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

Параметры

строка|массив $key
Ключ для установки или полный массив конфигураций.
смешанный|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().

Параметры

смешанный $msg
Сообщение для журнала.
целое число|строка $level необязательный LogLevel::ERROR
Уровень ошибки.
строка|массив $context необязательный []
Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращает

boolean
Результат записи в журнал.

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

$_defaultConfigsource

protected массив

Конфигурация по умолчанию для обработки 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–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.8/class-Cake.Controller.Component.CsrfComponent.html

Spec-Zone.ru

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