Spec-Zone.ru › CakePHP 3.8

Класс SecurityComponent

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

  • Ограничение HTTP-методов, которые принимает ваше приложение.
  • Защита от подмены данных формы
  • Требование использования SSL.
  • Ограничение межконтроллерной коммуникации.
Cake\Controller\Component implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
Extended by Cake\Controller\Component\SecurityComponent
Пространство имен: Cake\Controller\Component
Ссылка: https://book.cakephp.org/3.0/ru/controllers/components/security.html
Расположение: Controller/Component/SecurityComponent.php

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

  • string

    DEFAULT_EXCEPTION_MESSAGE
    'The request has been black-holed'

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

  • $_action protected
    string
    Текущее действие контроллера
  • $_defaultConfig protected
    array
    Значение по умолчанию конфигурации
  • $session public
    Cake\Http\Session
    Объект сессии

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

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

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

  • _authRequired() protected устарело
    Проверка необходимости авторизации
  • _callback() protected
    Вызов метода обратного вызова контроллера
  • _debugCheckFields() protected
    Проверка массива данных на соответствие ожидаемому
  • _debugExpectedFields() protected
    Генерирует сообщение об ожидаемых полях
  • _debugPostTokenNotMatching() protected
    Генерирует сообщение о несоответствии токена
  • _fieldsList() protected
    Возвращает список полей для расчёта хэша
  • _hashParts() protected
    Возвращает части хэша для генерации токена
  • _matchExistingFields() protected

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

  • _requireMethod() protected
    Устанавливает действия, требующие HTTP-запрос с методом $method, или пустое значение для всех действий
  • _secureRequired() protected
    Проверка необходимости безопасного подключения
  • _sortedUnlocked() protected
    Получить отсортированный неблокированный строку
  • _throwException() protected
    Проверка состояния отладки и выброс исключения на основе существующего
  • _unlocked() protected
    Получить неблокированную строку
  • _validToken() protected
    Проверка валидности токена
  • _validatePost() protected
    Проверка данных формы
  • blackHole() public

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

  • generateToken() public

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

  • implementedEvents() public
    Поддерживаемые события этого компонента.
  • requireAuth() public устарело
    Устанавливает действия, требующие отчищенных данных формы.
  • requireSecure() public
    Устанавливает действия, требующие зашифрованного запроса, или пустое значение для всех действий
  • startup() public
    Инициализация компонента. Здесь происходит вся проверка безопасности.

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

_authRequired()исходный код protected устарело

_authRequired( Cake\Controller\Controller $controller )

Проверка необходимости авторизации

Устарело

3.2.2 Эта функция запутанная и бесполезная.

Параметры

Cake\Controller\Controller $controller
Экземпляр контроллера

Возвращает

boolean
true, если авторизация необходима

_callback()исходный код protected

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

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

Параметры

Cake\Controller\Controller $controller
Экземпляр контроллера
строка $method
Метод для выполнения
массив $params необязательно []
Параметры для передачи методу

Возвращает

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

Выбрасывает

Cake\Http\Exception\BadRequestException
Если blackholeCallback не является вызываемым.

_debugCheckFields()исходный код protected

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

Проверка массива данных на соответствие ожидаемому

Параметры

массив $dataFields
Массив полей, содержащий поля POST-данных
массив $expectedFields необязательно []
Массив полей, содержащий ожидаемые поля в POST
строка $intKeyMessage необязательно ''
Строка сообщения, если в данных полей найдены неожиданные значения, индексированные целыми числами (не защищены)
строка $stringKeyMessage необязательно ''
Строка сообщения, если обнаружена подмена данных в полях данных, индексированных строками (защищены)
строка $missingMessage необязательно ''
Строка сообщения, если поле отсутствует

Возвращает

массив
Сообщения

_debugExpectedFields()исходный код protected

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

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

Параметры

массив $expectedFields необязательно []
Ожидаемые поля
строка $missingMessage необязательно ''
Шаблон сообщения

Возвращает

строка|null
Сообщение об ошибке ожидаемых полей
END_OF_DOCUMENT_MARKER

_debugPostTokenNotMatching()source protected

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

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

Параметры

Cake\Controller\Controller $controller
Экземпляр контроллера
массив $hashParts
Элементы, используемые для генерации хэша токена

Возвращает

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

_fieldsList()source protected

_fieldsList( array $check )

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

Параметры

массив $check
Массив данных

Возвращает

массив

_hashParts()source protected

_hashParts( Cake\Controller\Controller $controller )

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

Параметры

Cake\Controller\Controller $controller
Экземпляр контроллера

Возвращает

массив

_matchExistingFields()source protected

_matchExistingFields( array $dataFields , array $expectedFields , string $intKeyMessage , string $stringKeyMessage )

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

Параметры

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

Возвращает

массив
Сообщения об ошибках

_requireMethod()source protected

_requireMethod( string $method , array $actions = [] )

Устанавливает действия, требующие HTTP-запрос $method, или пусто для всех действий

Параметры

строка $method
HTTP-метод для назначения действий контроллера
массив $actions optional []
Действия контроллера для установки требуемого HTTP-метода.

_secureRequired()source protected

_secureRequired( Cake\Controller\Controller $controller )

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

Параметры

Cake\Controller\Controller $controller
Экземпляр контроллера

Возвращает

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

_sortedUnlocked()source protected

_sortedUnlocked( array $data )

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

Параметры

массив $data
Массив данных

Возвращает

строка

_throwException()source protected

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

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

Параметры

Cake\Controller\Exception\SecurityException|null $exception optional null
Дополнительная информация об отладке, описывающая причину

Выбрасывает

Cake\Http\Exception\BadRequestException

_unlocked()source protected

_unlocked( array $data )

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

Параметры

массив $data
Массив данных

Возвращает

строка

_validToken()source protected

_validToken( Cake\Controller\Controller $controller )

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

Параметры

Cake\Controller\Controller $controller
Экземпляр контроллера

Возвращает

строка
токен поля

Выбрасывает

Cake\Controller\Exception\SecurityException

_validatePost()source protected

_validatePost( Cake\Controller\Controller $controller )

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

Параметры

Cake\Controller\Controller $controller
Экземпляр контроллера

Возвращает

булево
true, если отправленная форма допустима

Выбрасывает

Cake\Controller\Exception\AuthSecurityException

blackHole()source public

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

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

Параметры

Cake\Controller\Controller $controller
Экземпляр контроллера
строка $error optional ''
Метод ошибки
Cake\Controller\Exception\SecurityException $exception optional null
Дополнительная информация об отладке, описывающая причину

Возвращает

смешанный
Если указан, ответ контроллера blackHoleCallback, в противном случае ничего

Выбрасывает

Cake\Http\Exception\BadRequestException

См. также

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

Ссылка

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

generateToken()source public

generateToken( Cake\Http\ServerRequest $request )

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

Параметры

Cake\Http\ServerRequest $request
Объект запроса, который нужно добавить.

Возвращает

Cake\Http\ServerRequest
Изменённый запрос.

implementedEvents()source public

implementedEvents( )

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

Возвращает

массив

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

Cake\Controller\Component::implementedEvents()

requireAuth()source public deprecated

requireAuth( string|array $actions )

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

Добавление действий с помощью этого метода будет обеспечивать выполнение ограничений, заданных в SecurityComponent::$allowedControllers и SecurityComponent::$allowedActions.

Устарело

3.2.2 Эта функция запутанна и бесполезна.

Параметры

строка|массив $actions
Список действий

requireSecure()source public

requireSecure( string|array|null $actions = null )

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

Параметры

строка|массив|null $actions optional null
Список действий

startup()source public

startup( Cake\Event\Event $event )

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

Параметры

Cake\Event\Event $event
Экземпляр события

Возвращает

смешанный

Методы унаследованные от Cake\Controller\Component

__construct()source public

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

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry
Регистр компонентов, который этот компонент может использовать для ленивой загрузки своих компонентов
array $config optional []
Массив параметров настройки.

__debugInfo()source public

__debugInfo( )

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

Возвращаемое значение

array

__get()source public

__get( string $name )

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

Параметры

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

Возвращаемое значение

mixed
Объект компонента или null.

getController()source public

getController( )

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

Возвращаемое значение

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

initialize()source public

initialize( array $config )

Метод-обработчик конструктора.

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

Параметры

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

Методы, используемые из Cake\Core\InstanceConfigTrait

_configDelete()source protected

_configDelete( string $key )

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

Параметры

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

Исключения

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

_configRead()source protected

_configRead( string|null $key )

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

Параметры

string|null $key
Ключ для чтения.

Возвращаемое значение

mixed

_configWrite()source protected

_configWrite( string|array $key , mixed $value , boolean|string $merge = false )

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

Параметры

string|array $key
Ключ для записи.
mixed $value
Значение для записи.
boolean|string $merge optional false

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

Исключения

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

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

Устарело

3.4.0 используйте setConfig()/getConfig() вместо этого.

Параметры

string|array|null $key optional null
Ключ для получения/установки или полный массив конфигураций.
mixed|null $value optional null
Значение для установки.
boolean $merge optional 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 optional 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 optional null
Ключ для получения или null для всей конфигурации.
mixed $default optional null
Возвращаемое значение, когда ключ не существует.

Возвращаемое значение

mixed
Данные конфигурации по указанному ключу или 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']);

Параметры

string|array $key
Ключ для установки или полный массив конфигураций.
mixed|null $value optional null
Значение для установки.
boolean $merge optional 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 optional LogLevel::ERROR
Уровень ошибки.
string|array $context optional []
Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращаемое значение

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

Подробности свойств

$_actionsource

protected string

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

END_OF_DOCUMENT_MARKER

$_defaultConfigsource

protected array

Настройка по умолчанию

  • blackHoleCallback - Метод контроллера, который будет вызван, если этот запрос заблокирован.
  • requireSecure - Список действий, требующих защищенного SSL соединения.
  • requireAuth - Список действий, требующих валидного ключа авторизации. Устарело начиная с версии 3.2.2
  • allowedControllers - Контроллеры, действия которых текущий контроллер разрешено принимать.
  • allowedActions - Действия, которые текущий контроллер разрешено принимать.
  • unlockedFields - Поля формы, исключаемые из проверки POST. Поля могут быть разблокированы в компоненте или с помощью FormHelper::unlockField(). Разблокированные поля не требуются в POST, и значения скрытых разблокированных полей не проверяются.
  • unlockedActions - Действия, исключаемые из проверки POST. Другие проверки, такие как requireAuth(), requireSecure() и т.д., всё равно будут применяться.
  • validatePost - Требуется ли проверка данных POST. Установите в значение false, чтобы отключить для данных, поступающих от сторонних сервисов и т.п.
[
    'blackHoleCallback' => null,
    'requireSecure' => [],
    'requireAuth' => [],
    'allowedControllers' => [],
    'allowedActions' => [],
    'unlockedFields' => [],
    'unlockedActions' => [],
    'validatePost' => true
]

$sessionsource

public Cake\Http\Session

Объект сессии

© 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.SecurityComponent.html

Spec-Zone.ru

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