Spec-Zone.ru › CakePHP 3.2

Класс 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
Ссылка: http://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
    Значения по умолчанию
  • $request public
    Cake\Network\Request
    Объект запроса
  • $session public
    Cake\Network\Session
    Объект сессии

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

  • _componentMap, _registry, components, response _config, _configInitialized

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

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

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

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

    Отклоняет невалидный запрос с ошибкой 400 или с помощью пользовательского обратного вызова. Если задан SecurityComponent::$blackHoleCallback, будет использован этот callback, выполняя метод, указанный в $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
Экземпляр контроллера
string $method
Метод для выполнения
array $params optional []
Параметры для отправки методу

Возвращает

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

Исключения

Cake\Network\Exception\BadRequestException
Когда blackholeCallback недоступен.

_debugCheckFields()source protected

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

Проверяет данные на соответствие ожидаемым значениям

Параметры

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

Возвращает

array
Сообщения

_debugExpectedFields()source protected

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

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

Параметры

array $expectedFields optional []
Ожидаемые поля
string $missingMessage optional ''
Шаблон сообщения

Возвращает

string
Сообщение об ошибке, касающееся ожидаемых полей
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
Строка сообщения, если в полях данных обнаружены неожиданные значения с индексом типа int (не защищены)
строка $stringKeyMessage
Строка сообщения, если в полях данных обнаружены изменённые значения с индексом типа string (защищены)

Возвращает

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

_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 $exception null )

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

Параметры

Cake\Controller\Exception\SecurityException $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

Ссылка

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

generateToken()source public

generateToken( Cake\Network\Request $request )

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

Параметры

Cake\Network\Request $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.

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

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

Параметры

строка|массив|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->config('key', $value);

Установка вложенного значения:

$this->config('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->config(['one' => 'value', 'another' => 'value']);

Параметры

строка|массив $key
Ключ для установки или полный массив конфигураций.
смешанный тип|null $value необязательно null
Значение для установки.

Возвращает


$this Сам объект.

Методы, используемые из 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 строка

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

null

$_defaultConfigsource

protected массив

Значения по умолчанию

  • 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
]

$requestsource

public Cake\Network\Request

Объект запроса

$sessionsource

public Cake\Network\Session

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

© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Controller.Component.SecurityComponent.html

Spec-Zone.ru

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