Spec-Zone.ru › CakePHP 3.4

Класс 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\Network\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
    Устанавливает действия, требующие запроса с SSL-защитой, или пустое значение для всех действий
  • startup() public
    Инициализация компонента. Все проверки безопасности происходят здесь.

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

_authRequired()source protected

_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 необязательно []
Параметры для отправки методу

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

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

Исключения

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

_debugCheckFields()source protected

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

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

Параметры

массив $dataFields
Массив полей, содержащий данные POST
массив $expectedFields необязательно []
Массив полей, содержащий ожидаемые поля в POST
строка $intKeyMessage необязательно ''
Строка сообщения, если в массиве данных обнаружены неожиданные поля с индексом типа int (не защищённые)
строка $stringKeyMessage необязательно ''
Строка сообщения, если в массиве данных обнаружены неожиданные поля с индексом типа string (защищённые)
строка $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
Строка сообщения, если неожиданное найдено в полях данных, индексированных по int (не защищенные)
строка $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\Network\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\Network\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
Объект запроса, в который необходимо добавить.

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

логическое значение

implementedEvents()source public

implementedEvents( )

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

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

массив

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

Cake\Controller\Component::implementedEvents()

requireAuth()source public

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

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

Исключения

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

config()source public

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
Значение для установки.
булево $merge необязательно 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
Значение для установки.
булево $merge необязательно 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 необязательно []
Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращает

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

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

$_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\Network\Session

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

© 2005–2017 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.4/class-Cake.Controller.Component.SecurityComponent.html

Spec-Zone.ru

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