Класс SecurityComponent
Компонент Security обеспечивает лёгкий способ интеграции более жёсткой системы безопасности в ваше приложение. Он предоставляет методы для различных задач, таких как:
- Ограничение HTTP-методов, принимаемых вашим приложением.
- Защита от CSRF.
- Защита от подмены данных форм.
- Требование использования SSL.
- Ограничение межконтроллерной коммуникации.
- CakeObject
-
Component
-
SecurityComponent
Ссылка: https://book.cakephp.org/2.0/en/core-libraries/components/security-component.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Controller/Component/SecurityComponent.php
Краткое описание констант
-
string'The request has been black-holed'
Краткое описание свойств
-
$_actionprotectedСодержит текущее действие контроллераstring -
$allowedActionspublicarrayДействия, из которых действия текущего контроллера разрешены для получения запросов.
-
$allowedControllerspublicarrayКонтроллеры, из которых действия текущего контроллера разрешены для получения запросов.
-
$blackHoleCallbackpublicМетод контроллера, который будет вызван, если этот запрос будет проигнорированstring -
$componentspublicДругие компоненты, используемые компонентом Безопасностиarray -
$csrfCheckpublicИспользовать формы с защитой CSRF. Установите в значение false, чтобы отключить защиту CSRF для форм.boolean -
$csrfExpirespublicstringВремя жизни токена CSRF после его создания. Каждый запрос формы/страницы создаёт новый токен, который можно отправить только один раз, пока он не истечёт. Может принимать любое значение, совместимое с strtotime()
-
$csrfLimitpublicintegerУправление количеством токенов, которые пользователь может держать открытыми. Это наиболее полезно с одноразовыми токенами. Поскольку новые токены создаются при каждом запросе, жёсткое ограничение на количество открытых токенов может быть полезным для управления размером файла сессии.
-
$csrfUseOncepublicbooleanУправляет тем, используются ли токены CSRF и сразу же уничтожаются. Установите в значение false, чтобы не генерировать новые токены при каждом запросе. Один токен будет повторно использован до его истечения. Это снижает вероятность получения пользователями недействительных запросов из-за потребления токенов. Это также имеет побочный эффект, делающий CSRF менее безопасным, поскольку токены могут быть повторно использованы.
-
$disabledFieldspublicУстаревшее свойство, заменено свойством unlockedFields.array - Объект запроса
$requestpublic -
$requireAuthpublicСписок действий, требующих действительного ключа аутентификацииarray -
$requireDeletepublicСписок действий контроллера, для которых требуется запрос DELETEarray -
$requireGetpublicСписок действий контроллера, для которых требуется запрос GETarray -
$requirePostpublicСписок действий контроллера, для которых требуется запрос POSTarray -
$requirePutpublicСписок действий контроллера, для которых требуется запрос PUTarray -
$requireSecurepublicСписок действий, требующих защищённого SSL-соединенияarray -
$unlockedActionspublicarrayДействия, которые следует исключить из проверок CSRF и валидации POST. Другие проверки, такие как requireAuth(), requireSecure(), requirePost(), requireGet() и т. д., всё ещё будут применяться.
-
$unlockedFieldspublicarrayПоля формы, которые нужно исключить из проверки POST. Поля могут быть разблокированы как в компоненте, так и с помощью FormHelper::unlockField(). Поля, которые были разблокированы, не обязаны быть частью POST, а разблокированные скрытые поля не проверяют свои значения.
-
$validatePostpublicbooleanПроверять ли данные POST. Установите в значение false, чтобы отключить для данных, поступающих из сторонних служб и т. д.
Наследуемые свойства
Краткое описание методов
- _authRequired() protectedПроверка необходимости авторизации
- _callback() protectedВызов метода обратного вызова контроллера
- _debugCheckFields() protectedИтерирует массив данных для проверки соответствия ожидаемым
- _debugExpectedFields() protectedГенерация сообщения отладки для ожидаемых полей
- _debugPostTokenNotMatching() protectedСоздание сообщения для пользователей, объясняющего, почему токен безопасности не совпадает
- _expireTokens() protected
Истечение срока действия CSRF nonces и удаление их из списка валидных токенов. Используется простой таймаут для истечения срока действия токенов.
- _fieldsList() protectedВозвращает список полей для вычисления хэша
- _hashParts() protectedВозвращает части хэша для генерации токена
- _matchExistingFields() protected
Генерация массива сообщений для существующих полей в данных POST, поля в $expectedFields, соответствующие данным в POST, будут удалены.
- _methodsRequired() protectedПроверка необходимости HTTP методов
- _requireMethod() protectedУстанавливает действия, требующие HTTP запрос $method, или пустое значение для всех действий
- _secureRequired() protectedПроверка необходимости защищённого соединения
- _sortedUnlocked() protectedПолучение отсортированной строки unlocked
- _throwException() protectedПроверка статуса отладки и выброс исключения на основе существующего
- _unlocked() protectedПолучение строки unlocked
- _validToken() protectedПроверка валидности токена
- _validateCsrf() protected
Проверка наличия CSRF токена в данных POST и его подлинности/неистечения. Если токен валиден, он будет удалён из списка валидных токенов.
- _validatePost() protectedПроверка данных формы
- blackHole() public
Отклонение невалидного запроса с ошибкой 400 или пользовательским обратным вызовом. Если SecurityComponent::$blackHoleCallback указан, он будет использован, выполнив метод, указанный в $error.
- generateToken() publicРучная добавка информации о CSRF токенах в предоставленный объект запроса.
- requireAuth() publicУстанавливает действия, требующие отправку форм из белого списка.
- requireDelete() publicУстанавливает действия, требующие DELETE запрос, или пустое значение для всех действий
- requireGet() publicУстанавливает действия, требующие GET запрос, или пустое значение для всех действий
- requirePost() publicУстанавливает действия, требующие POST запрос, или пустое значение для всех действий
- requirePut() publicУстанавливает действия, требующие PUT запрос, или пустое значение для всех действий
- requireSecure() publicУстанавливает действия, требующие SSL-защищённый запрос, или пустое значение для всех действий
- startup() publicИнициализация компонента. Здесь происходит вся проверка безопасности.
Подробное описание методов
_authRequired()source protected
_authRequired( Controller $controller )
Проверить, требуется ли аутентификация
Устаревшее
2.8.1 Эта функция запутанная и бесполезная.Параметры
-
Controller$controller - Экземпляр контроллера
Возвращаемое значение
boolean|nullИстина, если требуется аутентификация
Исключения
AuthSecurityException_callback()source protected
_callback( Controller $controller , string $method , array $params array() )
Вызывает метод обратного вызова контроллера
Параметры
-
Controller$controller - Контроллер, для которого будет выполнен обратный вызов
- string
$method - Метод для выполнения
- array
$paramsнеобязательно array() - Параметры для передачи методу
Возвращаемое значение
mixedОтвет метода обратного вызова контроллера
Исключения
BadRequestExceptionКогда blackholeCallback недоступен для вызова.
_debugCheckFields()source protected
_debugCheckFields( array $dataFields , array $expectedFields array() , string $intKeyMessage '' , string $stringKeyMessage '' , string $missingMessage '' )
Проверяет массив данных на соответствие ожидаемым полям
Параметры
- array
$dataFields - Массив полей, содержащий данные POST
- array
$expectedFieldsнеобязательно array() - Массив полей, содержащий ожидаемые поля в POST
- string
$intKeyMessageнеобязательно '' - Сообщение, если неожиданные поля найдены в данных с индексами целых чисел (не защищенные)
- string
$stringKeyMessageнеобязательно '' - Сообщение, если обнаружены измененные поля с индексами строк (защищенные)
- string
$missingMessageнеобязательно '' - Сообщение, если отсутствует поле
Возвращаемое значение
arrayСообщения
_debugExpectedFields()source protected
_debugExpectedFields( array $expectedFields array() , string $missingMessage '' )
Генерирует сообщение отладки для ожидаемых полей
Параметры
- array
$expectedFieldsнеобязательно array() - Ожидаемые поля
- string
$missingMessageнеобязательно '' - Шаблон сообщения
Возвращаемое значение
stringСообщение об ошибке относительно ожидаемых полей
_debugPostTokenNotMatching()source protected
_debugPostTokenNotMatching( Controller $controller , array $hashParts )
Создает сообщение для понимания людьми, почему токен безопасности не совпадает
Параметры
-
Controller$controller - Экземпляр контроллера
- array
$hashParts - Элементы, используемые для генерации хеша токена
Возвращаемое значение
stringСообщение, объясняющее, почему токены не совпадают
_expireTokens()source protected
_expireTokens( array $tokens )
Истекают срок действия CSRF nonces и удаляют их из допустимых токенов. Использует простой таймаут для истечения срока действия токенов.
Параметры
- array
$tokens - Массив nonce => срок истечения.
Возвращаемое значение
arrayМассив nonce => срок истечения.
_fieldsList()source protected
_fieldsList( array $check )
Возвращает список полей для расчёта хеша
Параметры
- array
$check - Массив данных
Возвращаемое значение
array_hashParts()source protected
_hashParts( Controller $controller )
Возвращение частей хеша для генерации токена
Параметры
-
Controller$controller - Экземпляр контроллера
Возвращает
массив_matchExistingFields()source protected
_matchExistingFields( array $dataFields , array $expectedFields , string $intKeyMessage , string $stringKeyMessage )
Генерирует массив сообщений для существующих полей в данных POST, поля, совпадающие с dataFields в $expectedFields, будут удалены
Параметры
- массив
$dataFields - Массив полей, содержащий поля POST данных
- массив
$expectedFields - $expectedFields Массив полей, содержащий ожидаемые поля, которые должны быть в POST
- строка
$intKeyMessage - Строка сообщения, если неожиданное поле найдено в данных, индексированных по целочисленному типу (не защищено)
- строка
$stringKeyMessage - Строка сообщения, если обнаружено вмешательство в данные, индексированные по строковому типу (защищено)
Возвращает
массивСообщения об ошибках
_methodsRequired()source protected
_methodsRequired( Controller $controller )
Проверка необходимости HTTP методов
Параметры
-
Controller$controller - Экземпляр контроллера
Возвращает
булевоTrue, если метод $method необходим
Выбрасывает
SecurityException_requireMethod()source protected
_requireMethod( string $method , array $actions array() )
Устанавливает действия, требующие HTTP-запрос $method, или пустое значение для всех действий
Параметры
- строка
$method - HTTP метод для назначения действий контроллера
- массив
$actionsнеобязательно массив() - Действия контроллера для установки требуемого HTTP метода.
_secureRequired()source protected
_secureRequired( Controller $controller )
Проверка необходимости защищённого соединения
Параметры
-
Controller$controller - Экземпляр контроллера
Возвращает
булевоTrue, если необходимо защищённое соединение
Выбрасывает
SecurityException_sortedUnlocked()source protected
_sortedUnlocked( array $data )
Получение отсортированной строки разблокированных данных
Параметры
- массив
$data - Массив данных
Возвращает
строка_throwException()source protected
_throwException( SecurityException|null $exception null )
Проверка статуса отладки и выброс исключения на основе существующего
Параметры
-
SecurityException|null$exceptionнеобязательно null - Дополнительная информация об отладке, описывающая причину
Выбрасывает
BadRequestException_unlocked()source protected
_unlocked( array $data )
Получение строки разблокированных данных
Параметры
- массив
$data - Массив данных
Возвращает
строка_validToken()source protected
_validToken( Controller $controller )
Проверка валидности токена
Параметры
-
Controller$controller - Экземпляр контроллера
Возвращает
строкатокен полей
Выбрасывает
AuthSecurityExceptionSecurityException_validateCsrf()source protected
_validateCsrf( Controller $controller )
Проверьте, содержит ли контроллер токен CSRF в данных POST и является ли токен действительным/не истекшим. Если токен действителен, он будет удалён из списка допустимых токенов.
Параметры
-
Controller$controller - Контроллер для проверки
Возвращает
booleanДействительный токен csrf.
Исключения
SecurityException_validatePost()source protected
_validatePost( Controller $controller )
Проверка отправленной формы
Параметры
-
Controller$controller - Инициализируемый контроллер
Возвращает
booleantrue, если отправленная форма валидна
Исключения
AuthSecurityExceptionblackHole()source public
blackHole( Controller $controller , string $error '' , SecurityException $exception null )
Отправка невалидного запроса в чёрный ящик с ошибкой 400 или пользовательской обработкой. Если в SecurityComponent::$blackHoleCallback указана функция обратного вызова, она будет использоваться путём выполнения метода, указанного в $error
Параметры
-
Controller$controller - Инициализируемый контроллер
- string
$errorопционально '' - Метод ошибки
-
SecurityException$exceptionопционально null - Дополнительная информация отладки, описывающая причину
Возвращает
mixedЕсли указано, ответ blackHoleCallback контроллера, в противном случае ничего не возвращается
Исключения
BadRequestExceptionСм. также
SecurityComponent::$blackHoleCallbackСсылка
https://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#handling-blackhole-callbacksgenerateToken()source public
generateToken( CakeRequest $request )
Вручную добавить информацию о токене CSRF в предоставленный объект запроса.
Параметры
-
CakeRequest$request - Объект запроса, в который нужно добавить данные.
Возвращает
booleanrequireAuth()source public
requireAuth( )
Устанавливает действия, требующие разрешённых данных форм.
Добавление действий с помощью этого метода будет принудительно применять ограничения, заданные в SecurityComponent::$allowedControllers и SecurityComponent::$allowedActions.
Ссылка
https://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#SecurityComponent::requireAuthrequireDelete()source public
requireDelete( )
Устанавливает действия, требующие запроса DELETE, или пустое значение для всех действий
Устарело
3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.requireGet()source public
requireGet( )
Устанавливает действия, требующие запроса GET, или пустое значение для всех действий
Устарело
3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.requirePost()source public
requirePost( )
Устанавливает действия, требующие запроса POST, или пустое значение для всех действий
Устарело
3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.Ссылка
https://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#SecurityComponent::requirePostrequirePut()source public
requirePut( )
Устанавливает действия, требующие PUT-запрос, или пустое значение для всех действий
Устарело
3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.requireSecure()source public
requireSecure( )
Устанавливает действия, требующие защищённого SSL-запроса, или пустое значение для всех действий
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/components/security-component.html#SecurityComponent::requireSecurestartup()source public
startup( Controller $controller )
Инициализация компонента. Здесь происходит вся проверка безопасности.
Параметры
-
Controller$controller - Экземпляр контроллера
Исключения
AuthSecurityExceptionПереопределяет
Component::startup() Методы, унаследованные от Component
__construct()source public
__construct( ComponentCollection $collection , array $settings array() )
Конструктор
Параметры
-
ComponentCollection$collection - A ComponentCollection, который этот компонент может использовать для ленивой загрузки своих компонентов
- array
$settingsoptional array() - Массив параметров конфигурации.
Переопределяет
CakeObject::__construct() __get()source public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- string
$name - Имя компонента для получения.
Возвращает
mixedОбъект компонента или null.
beforeRedirect()source public
beforeRedirect( Controller $controller , string|array $url , integer $status null , boolean $exit true )
Вызывается перед Controller::redirect(). Позволяет заменить URL, на который будет перенаправлен, новым URL. Возвращаемое значение этого метода может быть массивом или строкой.
Если возвращаемое значение - массив, содержащий ключ 'url', вы также можете указать следующее:
-
statusКод состояния перенаправления -
exitВыполнять ли выход после перенаправления.
Если ваш ответ - строка или массив, не содержащий ключа 'url', он будет использоваться как новый URL для перенаправления.
Параметры
-
Controller$controller - Контроллер с компонентами для передRedirect
- string|array
$url - Строка или массив URL, на который выполняется перенаправление.
- integer
$statusoptional null - Код состояния перенаправления
- boolean
$exitoptional true - Выполнять ли выход после перенаправления
Возвращает
array|nullМассив или null.
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRedirectbeforeRender()source public
beforeRender( Controller $controller )
Вызывается перед Controller::beforeRender(), перед загрузкой класса представления и перед Controller::render()
Параметры
-
Controller$controller - Контроллер с компонентами для beforeRender
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRenderinitialize()source public
initialize( Controller $controller )
Вызывается перед Controller::beforeFilter().
Параметры
-
Controller$controller - Контроллер с компонентами для инициализации
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.html#Component::initializeshutdown()source public
shutdown( Controller $controller )
Вызывается после Controller::render() и перед выводом на браузер.
Параметры
-
Controller$controller - Контроллер с компонентами для завершения
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.html#Component::shutdownМетоды, унаследованные от CakeObject
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства $property этого объекта со свойством в определении $class. Значение свойства этого класса будет объединёно поверх значения $class'.
Это обеспечивает некоторую из DRY-магии CakePHP. Если вы хотите отключить это, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- логическое значение
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет устанавливать несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Оборачивает exit(), что упрощает тестирование.
Параметры
- целое число/строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Обеспечивает объектно-ориентированный обёртку для call_user_func_array
Параметры
- строка
$method - Имя метода для вызова
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращает
mixedРезультат вызова метода
log()source 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Успешность записи в журнал
requestAction()source 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.
Параметры
- string|array
$url URL в виде строки или массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать передаваемые и именованные аргументы в параметре $url.
- array
$extraoptional array() Если массив включает ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/передаваемых аргументов.
Возвращаемое значение
mixedБулевое значение true или false при успехе/неудаче, или содержимое отрисованного действия, если в $extra установлен ключ 'return'.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
stringИмя этого класса
Подробности свойств
$allowedActionssource
public array
Действия, из которых действия текущего контроллера разрешено получать запросы.
См. также
SecurityComponent::requireAuth()array()
$allowedControllerssource
public array
Контроллеры, из которых действия текущего контроллера разрешено получать запросы.
См. также
SecurityComponent::requireAuth()array()
$blackHoleCallbacksource
public string
Метод контроллера, который будет вызван, если запрос будет отклонен (черная дыра)
null
$componentssource
public array
Другие компоненты, используемые компонентом Security
array('Session') $csrfChecksource
public boolean
Использовать ли CSRF-защищенные формы. Установите в false, чтобы отключить защиту CSRF для форм.
См. также
http://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)SecurityComponent::$csrfExpires
true
$csrfExpiressource
public string
Продолжительность времени с момента создания CSRF-токена, до его истечения. Каждый запрос формы/страницы генерирует новый токен, который можно отправить только один раз, если он не истек. Может быть любым значением, совместимым с strtotime()
'+30 minutes'
$csrfLimitsource
public integer
Управляет количеством токенов, которые может хранить пользователь. Это наиболее полезно для одноразовых токенов. Поскольку новые токены создаются при каждом запросе, жёсткое ограничение на количество открытых токенов может быть полезно для управления размером файла сессии.
При удалении токенов, сначала будут удалены самые старые, так как они, скорее всего, недействительны/просрочены.
100
$csrfUseOncesource
public boolean
Управляет тем, используются ли токены CSRF «используй и выбрось». Установите значение false, чтобы не генерировать новые токены при каждом запросе. Один токен будет повторно использован до истечения срока его действия. Это уменьшает вероятность получения пользователями недействительных запросов из-за потребления токенов. Однако это приводит к тому, что CSRF становится менее защищённым, поскольку токены могут быть повторно использованы.
true
$disabledFieldssource
public array
Устаревшее свойство, заменено на unlockedFields.
Устаревшее
3.0.0 Заменено на unlockedFields.См. также
SecurityComponent::$unlockedFieldsarray()
$requireAuthsource
public array
Список действий, требующих действительного ключа аутентификации
См. также
SecurityComponent::requireAuth()Устаревшее
2.8.1 Эта функция запутанная и бесполезная.array()
$requireDeletesource
public array
Список действий контроллера, для которых требуется запрос DELETE
Устаревшее
3.0.0 Используйте CakeRequest::allowMethod() вместо этого.См. также
SecurityComponent::requireDelete()array()
$requireGetsource
public array
Список действий контроллера, для которых требуется запрос GET
Устаревшее
3.0.0 Используйте CakeRequest::allowMethod() вместо этого.См. также
SecurityComponent::requireGet()array()
$requirePostsource
public array
Список действий контроллера, для которых требуется запрос POST
Устаревшее
3.0.0 Используйте CakeRequest::allowMethod() вместо этого.См. также
SecurityComponent::requirePost()array()
$requirePutsource
public array
Список действий контроллера, для которых требуется запрос PUT
Устаревшее
3.0.0 Используйте CakeRequest::allowMethod() вместо этого.См. также
SecurityComponent::requirePut()array()
$requireSecuresource
public array
Список действий, требующих защищённого SSL-соединения
См. также
SecurityComponent::requireSecure()array()
$unlockedActionssource
public array
Действия, которые нужно исключить из проверок CSRF и POST-валидации. Другие проверки, такие как requireAuth(), requireSecure(), requirePost(), requireGet() и т. д., по-прежнему будут применяться.
array()
$unlockedFieldssource
public array
Поля форм, которые нужно исключить из POST-валидации. Поля можно разблокировать в компоненте или с помощью FormHelper::unlockField(). Поля, которые были разблокированы, не обязательно должны быть частью POST, и значения скрытых разблокированных полей не проверяются.
array()
$validatePostsource
public boolean
Нужно ли проверять данные POST. Установите в значение false, чтобы отключить для данных, полученных от сторонних сервисов и т. д.
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/2.10/class-SecurityComponent.html