Spec-Zone.ru › CakePHP 3.6

Класс 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/en/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 deprecated
    Проверка необходимости аутентификации
  • _callback() protected
    Вызов метода обратного вызова контроллера
  • _debugCheckFields() protected
    Итерирует массив данных для проверки соответствия ожидаемому
  • _debugExpectedFields() protected
    Генерирует сообщение отладки для ожидаемых полей
  • _debugPostTokenNotMatching() protected
    Создаёт сообщение для пользователей, объясняющее, почему токен безопасности не соответствует
  • _fieldsList() protected
    Возвращает список полей для расчёта хэша
  • _hashParts() protected
    Возвращает части хэша для генерации токена
  • _matchExistingFields() protected

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

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

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

  • generateToken() public

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

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

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

_authRequired()source protected deprecated

_authRequired( Cake\Controller\Controller $controller )

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

Устаревшее

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

Параметры

Cake\Controller\Controller $controller
Создаваемый контроллер

Возвращает

boolean
true, если аутентификация необходима

_callback()source protected

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

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

Параметры

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

Возвращает

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

Выбрасывает

Cake\Http\Exception\BadRequestException
Когда blackholeCallback не вызываемый.

_debugCheckFields()source protected

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

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

Параметры

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

Возвращает

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

_debugExpectedFields()source 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, поля данных в $expectedFields будут удалены

Параметры

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

Возвращает

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

_requireMethod()source protected

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

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

Параметры

строка $method
HTTP-метод для назначения действий контроллера
массив $actions необязательно []
Действия контроллера для установки требуемого 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 необязательно 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 необязательно ''
Метод ошибки
Cake\Controller\Exception\SecurityException $exception необязательно 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 необязательно 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
ComponentRegistry, который этот компонент может использовать для ленивой загрузки своих компонентов
массив $config необязательный []
Массив параметров конфигурации.

__debugInfo()source public

__debugInfo( )

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

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

массив

__get()source public

__get( string $name )

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

Параметры

строка $name
Имя компонента, который нужно получить.

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

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

getController()source public

getController( )

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

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

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

initialize()source public

initialize( array $config )

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

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

Параметры

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

Методы, используемые из 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
Значение для записи.
boolean|строка $merge необязательный false

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

Исключения

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() вместо этого.

Параметры

строка|массив|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
Значение возврата, если ключ не существует.

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

смешанный
Значение конфигурации для чтения.

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
Успешность записи в журнал.

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

$_actionsource

protected строка

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

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

Spec-Zone.ru

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