Класс SecurityComponent
Компонент Security обеспечивает простой способ интеграции более строгой безопасности в ваше приложение. Он предоставляет методы для различных задач, таких как:
- Ограничение HTTP-методов, которые ваше приложение принимает.
- Защита от CSRF.
- Защита от подделки форм
- Требование использования SSL.
- Ограничение межконтроллерной коммуникации.
- Объект
-
Компонент -
SecurityComponent
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Ссылка: http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html
Расположение: Cake/Controller/Component/SecurityComponent.php
Подробное описание методов
_authRequiredисходный код защищённый
_authRequired( Controller $controller )
Проверка необходимости аутентификации
Параметры
-
Controller$controller - Создаваемый контроллер
Возвращает
boolean|nullTrue, если аутентификация необходима
_callbackисходный код защищённый
_callback( Controller $controller , string $method , array $params array() )
Вызывает метод обратного вызова контроллера
Параметры
-
Controller$controller - Контроллер, на котором будет вызван обратный вызов
- строка
$method - Метод для выполнения
- массив
$paramsнеобязательно массив() - Параметры для передачи методу
Возвращает
mixedОтвет метода обратного вызова контроллера
Исключения
BadRequestExceptionПри ошибке вызова blackholeCallback.
_expireTokensисходный код защищённый
_expireTokens( array $tokens )
Истекает срок действия CSRF nonces и удаляет их из допустимых токенов. Использует простой таймаут для истечения срока действия токенов.
Параметры
- массив
$tokens - Массив nonce => expires.
Возвращает
arrayМассив nonce => expires.
_methodsRequiredисходный код защищённый
_methodsRequired( Controller $controller )
Проверка необходимости HTTP-методов
Параметры
-
Controller$controller - Создаваемый контроллер
Возвращает
booleanTrue, если метод $method необходим
_requireMethodисходный код защищённый
_requireMethod( string $method , array $actions array() )
Устанавливает действия, требующие HTTP-запрос $method, или пустой массив для всех действий
Параметры
- строка
$method - HTTP-метод для назначения действий контроллера
- массив
$actionsнеобязательно массив() - Действия контроллера, для которых устанавливается требуемый HTTP-метод.
_secureRequiredисходный код защищённый
_secureRequired( Controller $controller )
Проверка необходимости безопасного соединения
Параметры
-
Controller$controller - Создаваемый контроллер
Возвращает
booleanTrue, если необходимо безопасное соединение
_validateCsrfисходный код защищённый
_validateCsrf( Controller $controller )
Проверка наличия CSRF-токена в данных POST контроллера и его легитимности/отсутствия истечения срока действия. Если токен действителен, он будет удалён из списка допустимых токенов.
Параметры
-
Controller$controller - Контроллер для проверки
Возвращает
booleanДействительный CSRF-токен.
_validatePostисходный код защищённый
_validatePost( Controller $controller )
Проверка отправленной формы
Параметры
-
Controller$controller - Создаваемый контроллер
Возвращает
booleantrue, если отправленная форма действительна
blackHoleисходный код публичный
blackHole( Controller $controller , string $error '' )
Блокирует недействительный запрос с ошибкой 400 или пользовательским обратным вызовом. Если SecurityComponent::$blackHoleCallback указан, он будет использовать этот обратный вызов, выполнив метод, указанный в $error
Параметры
-
Controller$controller - Создаваемый контроллер
- строка
$errorнеобязательно '' - Метод ошибки
Возвращает
mixedЕсли указан, ответ blackHoleCallback контроллера, в противном случае ничего не возвращает
Исключения
BadRequestExceptionBadRequestException
См. также
SecurityComponent::$blackHoleCallbackСсылка
http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#handling-blackhole-callbacksgenerateTokenисходный код публичный
generateToken( CakeRequest $request )
Вручную добавляет информацию о CSRF-токене в предоставленный объект запроса.
Параметры
-
CakeRequest$request - Объект запроса, в который добавить информацию.
Возвращает
booleanbool
requireAuthисходный код публичный
requireAuth( )
Устанавливает действия, требующие предоставления формы с разрешёнными данными.
Добавление действий с помощью этого метода применит ограничения, заданные в SecurityComponent::$allowedControllers и SecurityComponent::$allowedActions.
Ссылка
http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#SecurityComponent::requireAuthrequireDeleteисходный код публичный
requireDelete( )
Устанавливает действия, требующие DELETE-запрос, или пустой массив для всех действий
Устаревшее
3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.requireGetисходный код публичный
requireGet( )
Устанавливает действия, требующие GET-запрос, или пустой массив для всех действий
Устаревшее
3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.requirePostисходный код публичный
requirePost( )
Устанавливает действия, требующие POST-запрос, или пустой массив для всех действий
Устаревшее
3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.Ссылка
http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#SecurityComponent::requirePostrequirePutисходный код публичный
requirePut( )
Устанавливает действия, требующие PUT-запрос, или пустой массив для всех действий
Устаревшее
3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.requireSecuresource public
requireSecure( )
Устанавливает действия, требующие защищенного по протоколу SSL запроса, или пустое значение для всех действий
Ссылка
http://book.cakephp.org/2.0/ru/core-libraries/components/security-component.html#SecurityComponent::requireSecurestartupsource public
startup( Controller $controller )
Запуск компонента. Все проверки безопасности выполняются здесь.
Параметры
-
Controller$controller - Экземпляр контроллера
Переопределяет
Component::startup() Методы, унаследованные от Component
__constructsource public
__construct( ComponentCollection $collection , array $settings array() )
Конструктор
Параметры
-
ComponentCollection$collection - Объект ComponentCollection, который этот компонент может использовать для ленивой загрузки своих компонентов
- массив
$settingsнеобязательно массив() - Массив параметров конфигурации.
Переопределяет
Object::__construct() __getsource public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- строка
$name - Имя компонента для получения.
Возвращает
mixedОбъект Component или null.
beforeRedirectsource public
beforeRedirect( Controller $controller , string|array $url , integer $status null , boolean $exit true )
Вызывается перед Controller::redirect(). Позволяет заменить URL, на который будет выполнено перенаправление, новым URL. Результат этого метода может быть массивом или строкой.
Если результат — массив и содержит ключ 'url', вы также можете указать:
-
statusКод состояния перенаправления -
exitВыполнять ли выход после перенаправления.
Если ваш ответ — строка или массив, не содержащий ключа 'url', он будет использован в качестве нового URL для перенаправления.
Параметры
-
Controller$controller - Контроллер с компонентами для beforeRedirect
- строка|массив
$url - Строка или массив URL, на который выполняется перенаправление.
- целое число
$statusнеобязательно null - Код состояния перенаправления
- булево
$exitнеобязательно true - Выполнять ли выход после перенаправления.
Возвращает
array|nullМассив или null.
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRedirectbeforeRendersource public
beforeRender( Controller $controller )
Вызывается перед Controller::beforeRender(), перед загрузкой класса представления и перед Controller::render()
Параметры
-
Controller$controller - Контроллер с компонентами для beforeRender
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRenderinitializesource public
initialize( Controller $controller )
Вызывается перед Controller::beforeFilter().
Параметры
-
Controller$controller - Контроллер с компонентами для инициализации
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::initializeshutdownsource public
shutdown( Controller $controller )
Вызывается после Controller::render() и перед выводом результата в браузер.
Параметры
-
Controller$controller - Контроллер с компонентами для завершения работы
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::shutdownМетоды, унаследованные от Object
_mergeVarssource protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства этого объекта $property со свойствами в определении $class. Значение этого свойства для класса будет объединено поверх $class'.
Это обеспечивает некоторые возможности DRY, предоставляемые CakePHP. Если вы хотите их отключить, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойств с.
- булево
$normalizeнеобязательно true - Установите в значение true, чтобы запустить свойства через Hash::normalize() перед объединением.
_setsource protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будет установлены только те свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно массив() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stopsource protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Оборачивает exit(), что упрощает тестирование.
Параметры
- целое число|строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethodsource public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет ОО-обертку для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно массив() - Список параметров, используемых при вызове $method
Возвращает
mixedВозвращает результат вызова метода
logsource public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. Для получения дополнительной информации о записи в журналы, см. CakeLog::write().
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null - Область(и), в которой создается сообщение журнала. Для получения дополнительной информации о областей ведения журнала, см. CakeLog::config().
Возвращает
booleanУспешность записи в журнал
requestActionsource public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любой точки. Может использоваться для подключения контроллеров друг к другу или для связывания плагинов с основным приложением. requestAction может использоваться для возвращения отрисованных представлений или получения возвращаемого значения действий контроллера.
Внутри метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url - URL в виде строки или массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать передаваемые и именованные аргументы в параметре $url.
- массив
$extraнеобязательно массив() - Если массив включает ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST, а также именованных/переданных аргументов.
Возвращаемое значение
mixedБулево значение true или false при успехе/неудаче или содержимое отрисованного действия, если в $extra установлен ключ 'return'.
toStringsource public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
stringИмя этого класса
Резюме свойств
Свойства, унаследованные от Component
$_Collectionsource
protected ComponentCollection
Коллекция компонентов, используемая для ленивой загрузки компонентов.
$_componentMapsource
protected массив
Таблица поиска компонентов, используемая для ленивой загрузки объектов компонентов.
array()
© 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/2.7/class-SecurityComponent.html