Spec-Zone.ru › CakePHP 3.5

Класс SecurityComponent

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

  • Ограничение 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\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, поля, совпадающие с dataFields в $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
    Устанавливает действия, требующие подтверждения полей формы.
  • 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 опционально ''
Строка сообщения, если в данных полей обнаружено неожиданное поле, индексированное целым числом (не защищено)
строка $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 [] )

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

Параметры

строка $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
Имя компонента для получения.

Возвращает

смешанное
Объект компонента или 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

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

Устарело

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

Параметры

строка|массив|null $key необязательно null
Ключ для получения/установки или полный массив конфигураций.
смешанное|null $value необязательно null
Значение для установки.
булево $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
Значение для установки.
булево $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 необязательно []
Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращает

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

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

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

Объект Session

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

Spec-Zone.ru

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