В коробке Yii2 есть отличный фильтр, позволяющий ограничить доступ к Вашим действиям, исходя из типов запросов — т.е. GET, POST, PUT, DELETE.
Итак, работа с фильтром предельно проста. В каждом контроллере, где Вы хотите применять фильтрацию добавляем в секцию use:
use yii\filters\VerbFilter;
Далее, в теле класса нужно добавить поведение verbs, которое, в общем виде будет иметь такой вид:
public function behaviors()
{
return [
'verbs' => [
'class' => \yii\filters\VerbFilter::className(),
'actions' => [
'index' => ['get'],
'view' => ['get'],
'create' => ['get', 'post'],
'update' => ['get', 'put', 'post'],
'delete' => ['post', 'delete'],
],
];
}
Итак, что мы здесь имеет. Список Ваших действия следует заполнить в блоке actions. Здесь ключем будет имя действия (причем обратите внимание, что для действия из нескольких слов — следует указывать имя через дефис. Например, actionTwoWords — следует указать, как two-words), а значением — массив с именованием типов запросов, которые разрешены.
Логика состоит в том, что запрещены все, которые не разрешены — поэтому будьте внимательны.
Вот так просто можно ограничить доступ к вашим действиям. Удачи!