Класс SecurityComponent
Компонент Security обеспечивает простой способ интеграции более строгой безопасности в ваше приложение. Он предоставляет методы для различных задач, таких как:
- Ограничение HTTP-методов, принимаемых вашим приложением.
- Защита от подделки форм
- Требование использования SSL.
- Ограничение межконтроллерной коммуникации.
- Cake\Controller\Component implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
-
Cake\Controller\Component\SecurityComponent
Ссылка: http://book.cakephp.org/3.0/ru/controllers/components/security.html
Расположение: Controller/Component/SecurityComponent.php
Резюме констант
-
string'The request has been black-holed'
Резюме свойств
-
$_actionprotectedТекущее действие контроллераstring -
$_defaultConfigprotectedКонфигурация по умолчаниюarray - Объект запроса
$requestpublic - Объект сессии
$sessionpublic
Унаследованные свойства
Резюме методов
- _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 - Экземпляр контроллера
Возвращает
booleantrue, если аутентификация требуется
_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необязательно '' - Шаблон сообщения
Возвращает
строкаСообщение об ошибке ожидаемых полей
_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\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\AuthSecurityExceptionblackHole()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/en/controllers/components/security.html#handling-blackhole-callbacksgenerateToken()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 - КомпонентыRegistry, который может использовать этот компонент для ленивой загрузки своих компонентов
- массив
$configнеобязательно [] - Массив параметров конфигурации.
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
array__get()source public
__get( string $name )
Магический метод для леничной загрузки $components.
Параметры
- string
$name - Имя компонента для получения.
Возвращает
mixedОбъект компонента или null.
initialize()source public
initialize( array $config )
Метод хука конструктора.
Реализуйте этот метод, чтобы избежать необходимости переопределения конструктора и вызова родительского метода.
Параметры
- array
$config - Параметры конфигурации, предоставленные для этого компонента.
Методы, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удалить единственный ключ конфигурации
Параметры
- string
$key - Ключ для удаления.
Исключение
Cake\Core\Exception\Exceptionесли попытка перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Считывание переменной конфигурации
Параметры
- string|null
$key - Ключ для считывания.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Запись переменной конфигурации
Параметры
- string|array
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|string
$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']);
Параметры
- string|array|null
$keyнеобязательно null - Ключ для получения/установки или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
mixedЗначение конфигурации, которое читается, или сам объект при операциях записи.
Исключение
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']);
Параметры
- string|array
$key - Ключ для установки или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this Сам объект.
Методы, используемые из Cake\Log\LogTrait
log()source public
log( mixed $msg , integer|string $level LogLevel::ERROR , string|array $context [] )
Удобный метод для записи сообщения в журнал. См. Log::write() для получения дополнительной информации о записи в журналы.
Параметры
- mixed
$msg - Сообщение журнала.
- integer|string
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- string|array
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanРезультат записи в журнал.
Подробное описание свойств
$_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
]
© 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.3/class-Cake.Controller.Component.SecurityComponent.html