Класс SecurityComponent
Компонент Security упрощает интеграцию более строгих мер безопасности в ваше приложение. Он предоставляет методы для следующих задач:
- Защита от подделки форм.
- Требование использования SSL.
Устаревший: 4.0.0 Используйте {@link FormProtectionComponent} вместо него для защиты от подделки форм или {@link HttpsEnforcerMiddleware} для принудительного использования HTTPS (SSL) для запросов.
Ссылка: https://book.cakephp.org/4/ru/controllers/components/security.html
Константы
-
stringDEFAULT_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
voidThrows
Cake\Controller\Exception\AuthSecurityExceptionblackHole() 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
mixedThrows
Cake\Http\Exception\BadRequestExceptionSee Also
Links
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
$thisgenerateToken() public
generateToken(Cake\Http\ServerRequest $request): Cake\Http\ServerRequest
Вручную добавить информацию о токенах предотвращения подделки форм в предоставленный объект запроса.
Parameters
-
Cake\Http\ServerRequest$request Объект запроса, в который нужно добавить.
Returns
Cake\Http\ServerRequestgetConfig() 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
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
Возвращает конфигурацию для этого конкретного ключа.
Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.
Parameters
-
string$key Ключ для получения.
Returns
mixedThrows
InvalidArgumentExceptiongetController() public
getController(): Cake\Controller\Controller
Получить контроллер, к которому привязан этот компонент.
Returns
Cake\Controller\ControllerimplementedEvents() public
implementedEvents(): array<string, mixed>
События, поддерживаемые этим компонентом.
Использует соглашения для сопоставления событий контроллера со стандартными именами методов обратного вызова компонента. Определяя один из методов обратного вызова, компонент считается заинтересованным в соответствующем событии.
Переопределите этот метод, если вам нужно добавить нестандартные обработчики событий. Или если вы хотите, чтобы компоненты прослушивали нестандартные события.
Returns
array<string, mixed>initialize() public
initialize(array<string, mixed> $config): void
Метод хука конструктора.
Реализуйте этот метод, чтобы избежать необходимости переписывать конструктор и вызывать родительский.
Parameters
-
array<string, mixed>$config Параметры конфигурации, предоставленные этому компоненту.
Returns
voidlog() 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
boolrequireSecure() public
requireSecure(array<string>|string|null $actions = null): void
Устанавливает действия, требующие защищенного SSL-запроса, или пустое значение для всех действий
Parameters
-
array<string>|string|null$actions optional Список действий
Returns
voidsetConfig() 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
$thisThrows
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