Spec-Zone.ru › CakePHP 4.4

Класс
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<string, array>

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

  • $_config protected
    array<string, mixed>

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

  • $_configInitialized protected
    bool

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

  • $_defaultConfig protected
    array<string, mixed>

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

  • $_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<string, mixed> $config = [])

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry

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

array<string, mixed> $config optional

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

__debugInfo() public

__debugInfo(): array<string, mixed>

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

Возвращает

array<string, mixed>

__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(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void

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

Параметры

array<string, mixed>|string $key

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

mixed $value

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

string|bool $merge optional

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

Возвращает

void

Выбрасывает

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

_debugCheckFields() protected

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

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

Параметры

array $dataFields

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

array $expectedFields optional

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

string $intKeyMessage optional

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

string $stringKeyMessage optional

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

string $missingMessage optional

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

Возвращает

array<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<string> $hashParts): string

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

Параметры

Cake\Controller\Controller $controller

Инициализирующий контроллер

array<string> $hashParts

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

Возвращает

string

_fieldsList() protected

_fieldsList(array $check): array

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

Параметры

array $check

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

Возвращает

array

_hashParts() protected

_hashParts(Cake\Controller\Controller $controller): array<string>

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

Параметры

Cake\Controller\Controller $controller

Инициализирующий контроллер

Возвращает

array<string>

_matchExistingFields() protected

_matchExistingFields(array $dataFields, array $expectedFields, string $intKeyMessage, string $stringKeyMessage): array<string>

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

Параметры

array $dataFields

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

array $expectedFields

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

string $intKeyMessage

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

string $stringKeyMessage

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

Возвращает

array<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

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

Parameters

Cake\Controller\Controller $controller

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

Returns

void

Throws

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

Parameters

Cake\Controller\Controller $controller

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

string $error optional

Метод ошибки

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

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

Returns

mixed

Throws

Cake\Http\Exception\BadRequestException

See Also

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

Links

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

configShallow() public

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

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

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

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

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

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

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

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

Parameters

array<string, mixed>|string $key

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

mixed|null $value optional

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

Returns

$this

generateToken() public

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

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

Parameters

Cake\Http\ServerRequest $request

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

Returns

Cake\Http\ServerRequest

getConfig() public

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

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

Usage

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

$this->getConfig();

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

$this->getConfig('key');

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

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

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

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

Parameters

string|null $key optional

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

mixed $default optional

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

Returns

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

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

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

Parameters

string $key

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

Returns

mixed

Throws

InvalidArgumentException

getController() public

getController(): Cake\Controller\Controller

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

Returns

Cake\Controller\Controller

implementedEvents() public

implementedEvents(): array<string, mixed>

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

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

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

Returns

array<string, mixed>

initialize() public

initialize(array<string, mixed> $config): void

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

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

Parameters

array<string, mixed> $config

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

Returns

void

log() public

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

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

Parameters

string $message

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

string|int $level optional

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

array|string $context optional

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

Returns

bool

requireSecure() public

requireSecure(array<string>|string|null $actions = null): void

Устанавливает действия, требующие защищенного SSL-запроса, или пустое значение для всех действий

Parameters

array<string>|string|null $actions optional

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

Returns

void

setConfig() public

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

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

Usage

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

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

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

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

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

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

Parameters

array<string, mixed>|string $key

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

mixed|null $value optional

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

bool $merge optional

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

Returns

$this

Throws

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

startup() public

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

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

Parameters

Cake\Event\EventInterface $event

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

Returns

Cake\Http\Response|null

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

$_action protected

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

Тип

string

$_componentMap protected

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

Тип

array<string, array>

$_config protected

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

Тип

array<string, mixed>

$_configInitialized protected

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

Тип

bool

$_defaultConfig protected

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

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

Тип

array<string, mixed>

$_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.4/class-Cake.Controller.Component.SecurityComponent.html

Spec-Zone.ru

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