Spec-Zone.ru › CakePHP 4.2

Класс
SecurityComponent

Компонент Security упрощает интеграцию более строгих мер безопасности в ваше приложение. Он предоставляет методы для следующих задач:

  • Защита от подделки форм.
  • Требование использования SSL.
Пространство имен: Cake\Controller\Component
Устаревший: 4.0.0 Используйте {@link FormProtectionComponent} вместо него для защиты от подделки форм или {@link HttpsEnforcerMiddleware} для принудительного использования HTTPS (SSL) для запросов.
Ссылка: https://book.cakephp.org/4/ru/controllers/components/security.html

Константы

  • string
    DEFAULT_EXCEPTION_MESSAGE
    'The request has been black-holed'

    Сообщения по умолчанию, используемые для исключений

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

  • $_action protected
    string

    Содержит текущее действие контроллера

  • $_componentMap protected
    array

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

  • $_config protected
    array

    Конфигурация во время выполнения

  • $_configInitialized protected
    bool

    Указывает, была ли конфигурация уже настроена со значениями по умолчанию

  • $_defaultConfig protected
    array

    Конфигурация по умолчанию

  • $_registry protected
    Cake\Controller\ComponentRegistry

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

  • $components protected
    array

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

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

  • __construct() public

    Конструктор

  • __debugInfo() public

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

  • __get() public

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

  • _callback() protected

    Вызывает метод обратного вызова контроллера

  • _configDelete() protected

    Удаляет один ключ конфигурации.

  • _configRead() protected

    Читает ключ конфигурации.

  • _configWrite() protected

    Записывает ключ конфигурации.

  • _debugCheckFields() protected

    Итерирует массив данных для проверки по ожидаемым

  • _debugExpectedFields() protected

    Генерирует сообщение отладки для ожидаемых полей

  • _debugPostTokenNotMatching() protected

    Создает сообщение для пользователей, чтобы понять, почему токен безопасности не совпадает

  • _fieldsList() protected

    Возвращает список полей для вычисления хеша

  • _hashParts() protected

    Возвращает части хеша для генерации токена

  • _matchExistingFields() protected

    Создает массив сообщений для существующих полей в данных POST, соответствующие полям в $expectedFields будут удалены

  • _secureRequired() protected

    Проверяет, требуется ли безопасное соединение для доступа

  • _sortedUnlocked() protected

    Получает отсортированную строку, доступную без защиты

  • _throwException() protected

    Проверяет статус отладки и выводит исключение, основанное на существующем

  • _unlocked() protected

    Получает строку, доступную без защиты

  • _validToken() protected

    Проверяет, является ли токен допустимым

  • _validatePost() protected

    Проверяет отправленную форму

  • blackHole() public

    Отправляет недействительный запрос в «чёрную дыру» с ошибкой 400 или пользовательским обратным вызовом. Если в SecurityComponent::$blackHoleCallback задан обратный вызов, он будет использован путём выполнения метода, указанного в $error

  • configShallow() public

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

  • generateToken() public

    Вручную добавляет информацию о предотвращении подделки форм в предоставленный объект запроса.

  • getConfig() public

    Возвращает конфигурацию.

  • getConfigOrFail() public

    Возвращает конфигурацию для данного ключа.

  • getController() public

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

  • implementedEvents() public

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

  • initialize() public

    Метод для инициализации конструктора.

  • log() public

    Удобный метод для записи сообщения в журнал. Смотрите Log::write() для получения дополнительной информации о записи в журналы.

  • requireSecure() public

    Устанавливает действия, для которых требуется запрос с SSL-защитой, или пусто для всех действий.

  • setConfig() public

    Устанавливает конфигурацию.

  • startup() public

    Инициализация компонента. Все проверки безопасности выполняются здесь.

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

__construct() public

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

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry

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

array $config optional

Массив настроек конфигурации.

__debugInfo() public

__debugInfo(): array

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

Возвращает

array

__get() public

__get(string $name): Cake\Controller\Component|null

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

Параметры

string $name

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

Возвращает

Cake\Controller\Component|null

_callback() protected

_callback(Cake\Controller\Controller $controller, string $method, array $params = []): mixed

Вызывает метод обратного вызова контроллера

Параметры

Cake\Controller\Controller $controller

Контроллер, создающий экземпляр

string $method

Метод для выполнения

array $params optional

Параметры для отправки методу

Возвращает

mixed

Вызывает исключение

Cake\Http\Exception\BadRequestException
Когда blackholeCallback не является вызываемым.

_configDelete() protected

_configDelete(string $key): void

Удаляет один ключ конфигурации.

Параметры

string $key

Ключ для удаления.

Возвращает

void

Вызывает исключение

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

_configRead() protected

_configRead(string|null $key): mixed

Читает ключ конфигурации.

Параметры

string|null $key

Ключ для чтения.

Возвращает

mixed

_configWrite() protected

_configWrite(string|array $key, mixed $value, bool|string $merge = false): void

Записывает ключ конфигурации.

Параметры

string|array $key

Ключ для записи.

mixed $value

Значение для записи.

bool|string $merge optional

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

Возвращает

void

Вызывает исключение

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

_debugCheckFields() protected

_debugCheckFields(array $dataFields, array $expectedFields = [], string $intKeyMessage = '', string $stringKeyMessage = '', string $missingMessage = ''): string[]

Итерирует массив данных для проверки на соответствие ожидаемым значениям

Параметры

array $dataFields

Массив полей, содержащий поля данных POST

array $expectedFields optional

Массив полей, содержащий ожидаемые поля, которые должны быть в POST

string $intKeyMessage optional

Строка сообщения, если неожиданные поля найдены в данных, индексированных целыми числами (не защищенные)

string $stringKeyMessage optional

Строка сообщения, если несоответствия найдены в данных, индексированных строками (защищенные).

string $missingMessage optional

Строка сообщения, если поле отсутствует

Возвращает

string[]

_debugExpectedFields() protected

_debugExpectedFields(array $expectedFields = [], string $missingMessage = ''): string|null

Генерирует отладочное сообщение для ожидаемых полей

Параметры

array $expectedFields optional

Ожидаемые поля

string $missingMessage optional

Шаблон сообщения

Возвращает

string|null

_debugPostTokenNotMatching() protected

_debugPostTokenNotMatching(Cake\Controller\Controller $controller, array $hashParts): string

Создает сообщение для пользователей, чтобы объяснить, почему маркер безопасности не совпадает

Параметры

Cake\Controller\Controller $controller

Контроллер, создающий экземпляр

array $hashParts

Элементы, используемые для генерации хэша маркера

Возвращает

string

_fieldsList() protected

_fieldsList(array $check): array

Возвращает список полей для вычисления хэша

Параметры

array $check

Массив данных

Возвращает

array

_hashParts() protected

_hashParts(Cake\Controller\Controller $controller): string[]

Возвращает части хэша для генерации маркера

Параметры

Cake\Controller\Controller $controller

Контроллер, создающий экземпляр

Возвращает

string[]

_matchExistingFields() protected

_matchExistingFields(array $dataFields, array $expectedFields, string $intKeyMessage, string $stringKeyMessage): string[]

Генерирует массив сообщений для существующих полей в данных POST, совпадающие dataFields в $expectedFields будут unset

Параметры

array $dataFields

Массив полей, содержащий поля данных POST

array $expectedFields

Массив полей, содержащий ожидаемые поля, которые должны быть в POST

string $intKeyMessage

Строка сообщения, если неожиданные поля найдены в данных, индексированных целыми числами (не защищенные)

string $stringKeyMessage

Строка сообщения, если несоответствия найдены в данных, индексированных строками (защищенные)

Возвращает

string[]

_secureRequired() protected

_secureRequired(Cake\Controller\Controller $controller): void

Проверяет, требуется ли для доступа защищенное соединение

Параметры

Cake\Controller\Controller $controller

Контроллер, создающий экземпляр

Возвращает

void

Вызывает исключение

Cake\Controller\Exception\SecurityException

_sortedUnlocked() protected

_sortedUnlocked(array $data): string

Получает отсортированную незаблокированную строку

Параметры

array $data

Массив данных

Возвращает

string

_throwException() protected

_throwException(Cake\Controller\Exception\SecurityException|null $exception = null): void

Проверяет статус отладки и вызывает исключение на основе существующего

Параметры

Cake\Controller\Exception\SecurityException|null $exception optional

Дополнительная отладочная информация, описывающая причину

Возвращает

void

Вызывает исключение

Cake\Http\Exception\BadRequestException

_unlocked() protected

_unlocked(array $data): string

Получает незаблокированную строку

Параметры

array $data

Массив данных

Возвращает

string

_validToken() protected

_validToken(Cake\Controller\Controller $controller): string

Проверяет, является ли маркер действительным

Параметры

Cake\Controller\Controller $controller

Контроллер, создающий экземпляр

Возвращает

string

Вызывает исключение

Cake\Controller\Exception\SecurityException

_validatePost() protected

_validatePost(Cake\Controller\Controller $controller): void

Проверка отправленной формы

Параметры

Cake\Controller\Controller $controller

Экземпляр контроллера

Возвращает

void

Исключения

Cake\Controller\Exception\AuthSecurityException

blackHole() public

blackHole(Cake\Controller\Controller $controller, string $error = '', Cake\Controller\Exception\SecurityException|null $exception = null): mixed

Отправляет неверный запрос с ошибкой 400 или пользовательской обработкой. Если SecurityComponent::$blackHoleCallback задан, используется этот обратный вызов, выполняя метод, указанный в $error

Параметры

Cake\Controller\Controller $controller

Экземпляр контроллера

string $error optional

Метод обработки ошибки

Cake\Controller\Exception\SecurityException|null $exception optional

Дополнительная отладочная информация, описывающая причину

Возвращает

mixed

Исключения

Cake\Http\Exception\BadRequestException

См. также

\Cake\Controller\Component\SecurityComponent::$blackHoleCallback

Ссылки

https://book.cakephp.org/4/ru/controllers/components/security.html#handling-blackhole-callbacks

configShallow() public

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

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

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

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

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

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

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

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

Параметры

string|array $key

Ключ для установки или полный массив конфигураций.

mixed|null $value optional

Значение для установки.

Возвращает

$this

generateToken() public

generateToken(Cake\Http\ServerRequest $request): Cake\Http\ServerRequest

Добавляет вручную информацию о токене предотвращения подделки формы в предоставленный объект запроса.

Параметры

Cake\Http\ServerRequest $request

Объект запроса, в который нужно добавить токен.

Возвращает

Cake\Http\ServerRequest

getConfig() public

getConfig(string|null $key = null, mixed $default = null): mixed

Возвращает конфигурацию.

Использование

Чтение всей конфигурации:

$this->getConfig();

Чтение конкретного значения:

$this->getConfig('key');

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

$this->getConfig('some.nested.key');

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

string|null $key optional

Ключ для получения или null для всей конфигурации.

mixed $default optional

Возвращаемое значение, если ключ не существует.

Возвращает

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

Возвращает конфигурацию для заданного ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Ключ для получения.

Возвращает

mixed

Исключения

InvalidArgumentException

getController() public

getController(): Cake\Controller\Controller

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

Возвращает

Cake\Controller\Controller

implementedEvents() public

implementedEvents(): array

События, поддерживаемые этим компонентом.

Использует соглашения для сопоставления событий контроллера с стандартными именами методов обратного вызова компонента. Определяя один из методов обратного вызова, предполагается, что компонент заинтересован в соответствующем событии.

Переопределите этот метод, если вам нужно добавить обработчики событий, не соответствующие соглашениям. Или если вы хотите, чтобы компоненты прослушивали нестандартные события.

Возвращает

array

initialize() public

initialize(array $config): void

Метод инициализации.

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

Параметры

array $config

Настройки конфигурации, предоставленные этому компоненту.

Возвращает

void

log() public

log(string $message, int|string $level = LogLevel::ERROR, string|array $context = []): bool

Удобный метод для записи сообщения в журнал. Для получения дополнительной информации о записи в журналы см. Log::write().

Параметры

string $message

Сообщение журнала.

int|string $level optional

Уровень ошибки.

string|array $context optional

Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращает

bool

requireSecure() public

requireSecure(string|string[]|null $actions = null): void

Устанавливает действия, которые требуют запроса с использованием SSL, или пустое значение для всех действий.

Параметры

string|string[]|null $actions optional

Список действий

Возвращает

void

setConfig() public

setConfig(string|array $key, mixed|null $value = null, bool $merge = true): $this

Устанавливает конфигурацию.

Использование

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

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

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

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

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

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

Параметры

string|array $key

Ключ для установки или полный массив конфигураций.

mixed|null $value optional

Значение для установки.

bool $merge optional

Включить рекурсивное объединение или перезапись существующей конфигурации, по умолчанию true.

Возвращает

$this

Исключения

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

startup() public

startup(Cake\Event\EventInterface $event): Cake\Http\Response|null

Инициализация компонента. Здесь происходит вся проверка безопасности.

Параметры

Cake\Event\EventInterface $event

Экземпляр события

Возвращает

Cake\Http\Response|null

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

$_action protected

Содержит текущее действие контроллера

Тип

string

$_componentMap protected

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

Тип

array

$_config protected

Конфигурация во время выполнения

Тип

array

$_configInitialized protected

Указывает, была ли конфигурация свойства уже настроена со значениями по умолчанию

Тип

bool

$_defaultConfig protected

Конфигурация по умолчанию

  • blackHoleCallback - Метод контроллера, который будет вызван, если этот запрос будет отклонен.
  • requireSecure - Список действий, требующих защищенного SSL-соединения.
  • unlockedFields - Поля форм, которые нужно исключить из проверки POST-данных. Поля можно разблокировать в компоненте или с помощью FormHelper::unlockField(). Разблокированные поля не обязательны в POST, а скрытые разблокированные поля не проверяются на наличие значений.
  • unlockedActions - Действия, которые нужно исключить из проверок POST-данных. Другие проверки, такие как requireSecure() и т. д., все равно будут применяться.
  • validatePost - Необходимо ли проверять данные POST. Установите в значение false, чтобы отключить проверку для данных, поступающих из сторонних сервисов и т. д.

Тип

array

$_registry protected

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

Тип

Cake\Controller\ComponentRegistry

$components protected

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

Тип

array

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

Spec-Zone.ru

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