Spec-Zone.ru › CakePHP 2.9

Класс SecurityComponent

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

  • Ограничение HTTP-методов, принимаемых вашим приложением.
  • Защита от CSRF.
  • Защита от подделки форм
  • Требование использования SSL.
  • Ограничение межконтроллерной коммуникации.
CakeObject
Extended by Component
Extended by SecurityComponent
Пакет: Cake\Controller\Component
Ссылка: http://book.cakephp.org/2.0/ru/core-libraries/components/security-component.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Controller/Component/SecurityComponent.php

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

  • $_action protected
    string
    Текущее действие контроллера
  • $allowedActions public
    array

    Действия, из которых действия текущего контроллера разрешены для получения запросов.

  • $allowedControllers public
    array

    Контроллеры, из которых действия текущего контроллера разрешены для получения запросов.

  • $blackHoleCallback public
    string
    Метод контроллера, который будет вызван, если этот запрос будет проигнорирован
  • $components public
    array
    Другие компоненты, используемые компонентом Security
  • $csrfCheck public
    boolean
    Использовать формы с защитой от CSRF. Установите в false, чтобы отключить защиту от CSRF для форм.
  • $csrfExpires public
    string

    Срок действия токена CSRF после его создания. Каждый запрос формы/страницы генерирует новый токен, который может быть отправлен только один раз, пока не истечёт. Может принимать любые значения, совместимые с strtotime()

  • $csrfLimit public
    integer

    Управление количеством токенов, которые может хранить пользователь. Это наиболее полезно с одноразовыми токенами. Поскольку новые токены создаются при каждом запросе, жёсткое ограничение на количество открытых токенов может быть полезно для управления размером файла сессии.

  • $csrfUseOnce public
    boolean

    Определяет, использовать ли токены CSRF одноразового использования. Установите в false, чтобы не генерировать новые токены при каждом запросе. Один токен будет повторно использован до истечения срока его действия. Это уменьшает вероятность получения пользователями неверных запросов из-за использования токенов. Это имеет побочный эффект, делающий CSRF менее безопасным, так как токены могут быть повторно использованы.

  • $disabledFields public
    array
    Устаревшее свойство, заменено свойством unlockedFields.
  • $request public
    CakeRequest
    Объект запроса
  • $requireAuth public
    array
    Список действий, требующих действительного ключа аутентификации
  • $requireDelete public
    array
    Список действий контроллера, для которых требуется запрос DELETE
  • $requireGet public
    array
    Список действий контроллера, для которых требуется запрос GET
  • $requirePost public
    array
    Список действий контроллера, для которых требуется запрос POST
  • $requirePut public
    array
    Список действий контроллера, для которых требуется запрос PUT
  • $requireSecure public
    array
    Список действий, требующих защищённого SSL-соединения
  • $unlockedActions public
    array

    Действия, которые следует исключить из проверок CSRF и POST. Другие проверки, такие как requireAuth(), requireSecure(), requirePost(), requireGet() и т. д., всё равно будут применяться.

  • $unlockedFields public
    array

    Поля форм, которые следует исключить из проверок POST. Поля можно разблокировать как в компоненте, так и с помощью FormHelper::unlockField(). Поля, которые были разблокированы, не обязательно должны быть частью POST, и значения скрытых разблокированных полей не проверяются.

  • $validatePost public
    boolean

    Требуется ли проверка данных POST. Установите в false, чтобы отключить для данных, поступающих от сторонних служб и т. д.

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

  • _Collection, _componentMap, settings

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

  • _authRequired() protected
    Проверка необходимости аутентификации
  • _callback() protected
    Вызов метода обратного вызова контроллера
  • _expireTokens() protected

    Истечение срока действия CSRF-носов и удаление их из действительных токенов. Используется простой таймаут для истечения срока действия токенов.

  • _methodsRequired() protected
    Проверка необходимости HTTP-методов
  • _requireMethod() protected
    Устанавливает действия, требующие HTTP-запрос $method, или пустое значение для всех действий
  • _secureRequired() protected
    Проверка необходимости доступа через защищённое соединение
  • _validateCsrf() protected

    Проверка наличия в данных POST токена CSRF контроллера и его действительности/не истечения срока действия. Если токен действителен, он будет удалён из списка действительных токенов.

  • _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
True, если аутентификация требуется
END_OF_DOCUMENT_MARKER

_callback()source protected

_callback( Controller $controller , string $method , array $params array() )

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

Параметры

Controller $controller
Контроллер, для которого выполняется обратный вызов
строка $method
Метод для выполнения
массив $params необязательно array()
Параметры, которые будут переданы методу

Возвращает

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

Исключения

BadRequestException
Если метод blackholeCallback недоступен.

_expireTokens()source protected

_expireTokens( array $tokens )

Истекают срок действия CSRF-токенов и удаляют их из допустимых токенов. Использует простой таймаут для истечения срока действия токенов.

Параметры

массив $tokens
Массив nonce => срок действия.

Возвращает

array
Массив nonce => срок действия.

_methodsRequired()source protected

_methodsRequired( Controller $controller )

Проверка, требуются ли HTTP-методы

Параметры

Controller $controller
Инициализируемый контроллер

Возвращает

boolean
True, если метод $method требуется

_requireMethod()source protected

_requireMethod( string $method , array $actions array() )

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

Параметры

строка $method
HTTP-метод, которому нужно назначить действия контроллера
массив $actions необязательно array()
Действия контроллера, для которых нужно установить необходимый HTTP-метод.

_secureRequired()source protected

_secureRequired( Controller $controller )

Проверка, требуется ли безопасное соединение

Параметры

Controller $controller
Инициализируемый контроллер

Возвращает

boolean
True, если требуется безопасное соединение

_validateCsrf()source protected

_validateCsrf( Controller $controller )

Проверка, что контроллер имеет CSRF-токен в данных POST и что токен действителен/не истек. Если токен действителен, он будет удален из списка действительных токенов.

Параметры

Controller $controller
Контроллер для проверки

Возвращает

boolean
Действительный CSRF-токен.

_validatePost()source protected

_validatePost( Controller $controller )

Проверка отправленной формы

Параметры

Controller $controller
Инициализируемый контроллер

Возвращает

boolean
True, если отправленная форма действительна

blackHole()source public

blackHole( Controller $controller , string $error '' )

Блокирует недопустимый запрос с ошибкой 400 или пользовательским обратным вызовом. Если в SecurityComponent::$blackHoleCallback указан обратный вызов, он будет использован, выполнив метод, указанный в $error

Параметры

Controller $controller
Инициализируемый контроллер
строка $error необязательно ''
Метод ошибки

Возвращает

mixed
Если указано, ответ метода blackHoleCallback контроллера, иначе ничего не возвращает

Исключения

BadRequestException

См. также

SecurityComponent::$blackHoleCallback

Ссылка

http://book.cakephp.org/2.0/ru/core-libraries/components/security-component.html#handling-blackhole-callbacks

generateToken()source public

generateToken( CakeRequest $request )

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

Параметры

CakeRequest $request
Объект запроса, в который нужно добавить информацию.

Возвращает

boolean

requireAuth()source public

requireAuth( )

Устанавливает действия, которые требуют предоставленных в форме данных.

Добавление действий с этим методом обеспечит соблюдение ограничений, установленных в SecurityComponent::$allowedControllers и SecurityComponent::$allowedActions.

Ссылка

http://book.cakephp.org/2.0/ru/core-libraries/components/security-component.html#SecurityComponent::requireAuth

requireDelete()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() вместо этого.

Ссылка

http://book.cakephp.org/2.0/ru/core-libraries/components/security-component.html#SecurityComponent::requirePost

requirePut()source public

requirePut( )

Устанавливает действия, которые требуют PUT-запрос, или пустой массив для всех действий

Устаревшее

3.0.0 Используйте CakeRequest::onlyAllow() вместо этого.

requireSecure()source public

requireSecure( )

Устанавливает действия, которые требуют защищенного (SSL) запроса, или пустой массив для всех действий

Ссылка

http://book.cakephp.org/2.0/ru/core-libraries/components/security-component.html#SecurityComponent::requireSecure

startup()source public

startup( Controller $controller )

Инициализация компонента. Здесь происходит вся проверка безопасности.

Параметры

Controller $controller
Инициализируемый контроллер

Переопределяет

Component::startup()

Наследованные методы из Component

__construct()source public

__construct( ComponentCollection $collection , array $settings array() )

Конструктор

Параметры

ComponentCollection $collection
Коллекция компонентов, которую может использовать этот компонент для ленивой загрузки своих компонентов
массив $settings необязательно array()
Массив настроек конфигурации.

Переопределяет

CakeObject::__construct()

__get()source public

__get( string $name )

Магический метод для ленивой загрузки $components.

Параметры

строка $name
Имя компонента, который нужно получить.

Возвращает

mixed
Объект Component или 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
Контроллер с компонентами для beforeRedirect
строка|массив $url
Строка или массив URL, на который происходит перенаправление.
целое число $status необязательно null
Код состояния перенаправления
булево $exit необязательно true
Завершить скрипт после перенаправления.

Возвращаемое значение

массив|null
Либо массив, либо null.

Ссылка

http://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRedirect

beforeRender()source public

beforeRender( Controller $controller )

Вызывается перед Controller::beforeRender(), перед загрузкой класса представления и перед Controller::render()

Параметры

Controller $controller
Контроллер с компонентами для beforeRender

Ссылка

http://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRender

initialize()source public

initialize( Controller $controller )

Вызывается перед Controller::beforeFilter().

Параметры

Controller $controller
Контроллер с компонентами для инициализации

Ссылка

http://book.cakephp.org/2.0/ru/controllers/components.html#Component::initialize

shutdown()source public

shutdown( Controller $controller )

Вызывается после Controller::render() и перед выводом на браузер.

Параметры

Controller $controller
Контроллер с компонентами для завершения работы

Ссылка

http://book.cakephp.org/2.0/ru/controllers/components.html#Component::shutdown

Методы, унаследованные от CakeObject

_mergeVars()source protected

_mergeVars( array $properties , string $class , boolean $normalize true )

Объединяет свойства объекта с свойствами в определении $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

Возвращаемое значение

смешанный
Возвращает результат вызова метода

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() для получения дополнительной информации о журналах.

Возвращаемое значение

булево
Успешность записи в журнал

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.

Параметры

строка|массив $url

Строковый или массивный URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.

массив $extra необязательно array()

Если массив включает ключ "return", устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.

Возвращаемое значение

смешанный

Булево true или false при успехе/неуспехе, или содержимое отображенного действия, если в $extra установлен ключ 'return'.


toString()source public

toString( )

Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по необходимости.

Возвращаемое значение

строка
Имя этого класса

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

$_actionsource

protected строка

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

null

$allowedActionssource

public массив

Действия, из которых действия текущего контроллера разрешено принимать запросы.

См. также

SecurityComponent::requireAuth()
array()

$allowedControllerssource

public массив

Контроллеры, из которых действия текущего контроллера разрешено принимать запросы.

См. также

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::$unlockedFields
array()

$requestsource

public CakeRequest

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

$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–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.
https://api.cakephp.org/2.9/class-SecurityComponent.html

Spec-Zone.ru

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