Spec-Zone.ru › Yii 2.0

Класс yii\filters\HostControl

Все классы | Свойства | Методы
Наследование yii\filters\HostControl » yii\base\ActionFilter » yii\base\Behavior » yii\base\Object
Реализует yii\base\Configurable
Доступно с версии 2.0.11
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/filters/HostControl.php

HostControl обеспечивает простой контроль над запрошенным именем хоста.

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

Пример конфигурации приложения:

return [
    'as hostControl' => [
        'class' => 'yii\filters\HostControl',
        'allowedHosts' => [
            'example.com',
            '*.example.com',
        ],
    ],
    // ...
];

Пример конфигурации контроллера:

use yii\web\Controller;
use yii\filters\HostControl;

class SiteController extends Controller
{
    public function behaviors()
    {
        return [
            'hostControl' => [
                'class' => HostControl::className(),
                'allowedHosts' => [
                    'example.com',
                    '*.example.com',
                ],
            ],
        ];
    }

    // ...
}

Примечание: лучший способ ограничить разрешенные имена хостов — использование конфигурации виртуальных хостов веб-сервера. Этот фильтр следует использовать только в том случае, если эта конфигурация недоступна или скомпрометирована.

Общедоступные свойства

Свойство Тип Описание Определено в
$allowedHosts массив|Замыкание|null Список имен хостов, которые разрешены. yii\filters\HostControl
$denyCallback вызываемый объект Обратный вызов, который будет вызван, если текущий хост не соответствует $allowedHosts. yii\filters\HostControl
$except массив Список идентификаторов действий, к которым этот фильтр не должен применяться. yii\base\ActionFilter
$fallbackHostInfo строка|null Дополнительная информация о хосте (например, `http://www). yii\filters\HostControl
$only массив Список идентификаторов действий, к которым этот фильтр должен применяться. yii\base\ActionFilter
$owner yii\base\Component|null Владелец этого поведения yii\base\Behavior

Общедоступные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Object
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
afterAction() Этот метод вызывается сразу после выполнения действия. yii\base\ActionFilter
afterFilter() yii\base\ActionFilter
attach() Присоединяет объект поведения к компоненту. yii\base\Behavior
beforeAction() Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить последнюю подготовку к действию. yii\filters\HostControl
beforeFilter() yii\base\ActionFilter
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
className() Возвращает полное имя этого класса. yii\base\Object
detach() Отсоединяет объект поведения от компонента. yii\base\Behavior
events() Объявляет обработчики событий для событий $owner. yii\base\Behavior
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует объект. yii\base\Object

Защищённые методы

Метод Описание Определено в
denyAccess() Отказывает в доступе. yii\filters\HostControl
getActionId() Возвращает идентификатор действия, преобразуя yii\base\Action::$uniqueId в идентификатор, относительный к модулю. yii\base\ActionFilter
isActive() Возвращает значение, указывающее, активен ли фильтр для данного действия. yii\base\ActionFilter

Подробности свойств

$allowedHosts общедоступное свойство

Список имен хостов, которые разрешены. Каждый хост может быть указан в виде шаблона с подстановкой. Например:

[
    'example.com',
    '*.example.com',
]

Это поле может быть указано как PHP обратный вызов с следующим сигнатурой:

function (\yii\base\Action $action) {
    //return array of strings
}

где $action — текущий объект действия.

Если это поле не установлено, проверка имени хоста не будет выполняться.

public array|Closure|null $allowedHosts = null

$denyCallback общедоступное свойство

Обратный вызов, который будет вызван, если текущий хост не соответствует $allowedHosts. Если не установлено, будет вызван denyAccess().

Сигнатура обратного вызова должна быть следующей:

function (\yii\base\Action $action)

где $action — текущий объект действия.

Примечание: при реализации собственной обработки отказа доступа к хосту убедитесь, что вы избегаете использования текущего имени запрошенного хоста, создания абсолютных ссылок URL, кэширования частей страницы и т. д.

public callable $denyCallback = null

$fallbackHostInfo общедоступное свойство

Дополнительная информация о хосте (например, http://www.yiiframework.com) используемая, когда Request::$hostInfo недопустима. Это значение заменит Request::$hostInfo перед вызовом $denyCallback, чтобы убедиться, что недопустимый хост не будет использоваться для дальнейшей обработки. Вы можете установить его в null чтобы оставить Request::$hostInfo без изменений. Значение по умолчанию — пустая строка (это приведет к созданию относительных ссылок вместо абсолютных).

См. также yii\web\Request::getHostInfo().

public string|null $fallbackHostInfo = ''

Подробности методов

beforeAction() public method

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

public boolean beforeAction ( $action )
$action yii\base\Action

Действие, которое будет выполнено.

return boolean

Выполнять ли действие дальше.

denyAccess() protected method

Отказывает в доступе.

Стандартная реализация сразу отобразит страницу 404, прекратив выполнение программы. Вы можете переопределить этот метод, создав свой обработчик отказа в доступе. При этом убедитесь, что вы не используете текущее запрашиваемое имя хоста, не создаете абсолютные ссылки на URL, не кешируете части страницы и т. д.

protected void denyAccess ( $action )
$action yii\base\Action

Действие, которое будет выполнено.

throws yii\web\NotFoundHttpException

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-filters-hostcontrol.html

Spec-Zone.ru

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