Spec-Zone.ru › CakePHP 3.7

Класс SecurityComponent

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

  • Ограничение HTTP-методов, принимаемых вашим приложением.
  • Защита от подделки форм
  • Требование использования SSL.
  • Ограничение межконтроллерной коммуникации.
Cake\Controller\Component реализует Cake\Event\EventListenerInterface использует 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 deprecated
    Проверка необходимости авторизации
  • _callback() protected
    Вызов метода обратного вызова контроллера
  • _debugCheckFields() protected
    Проверка данных на соответствие ожидаемым значениям
  • _debugExpectedFields() protected
    Генерирует сообщение об ожидаемых полях для отладки
  • _debugPostTokenNotMatching() protected
    Генерирует сообщение о несоответствии токена для пользователя
  • _fieldsList() protected
    Возвращает список полей для вычисления хеша
  • _hashParts() protected
    Возвращает части хеша для генерации токена
  • _matchExistingFields() protected

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

  • _requireMethod() protected
    Устанавливает действия, требующие HTTP-запрос с указанным методом, или пусто для всех действий
  • _secureRequired() protected
    Проверяет, требует ли доступ защищённое соединение
  • _sortedUnlocked() protected
    Получает отсортированную строку разблокированных элементов
  • _throwException() protected
    Проверяет статус отладки и выбрасывает исключение на основе существующего
  • _unlocked() protected
    Получает строку разблокированных элементов
  • _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 )

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

Deprecated

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\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, поля, совпадающие с 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/en/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 )

Устанавливает действия, требующие авторизации whitelisted form submissions.

Добавление действий с этим методом будет принудительно применять ограничения, заданные в 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
Объект 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 строка

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

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

Spec-Zone.ru

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