VerbFilter
VerbFilter est un filtre pour les méthodes de requête HTTP. Sa fonction est de définir ce qui est autorisé à accéder. actions spécifiées, si une requête HTTP non autorisée arrive, une erreur HTTP 405 sera générée. Si aucune méthode de requête autorisée n'est spécifiée, tous les types de méthodes de requête sont autorisés par défaut. (Apprentissage recommandé : tutoriel yii)
Ensuite, essayez l'utilisation simple de VerbFilter.
Tout d'abord, ajoutez le code dans SiteController
public function actionInfo() { return \Yii::createObject([ 'class' => 'yii\web\Response', 'format' => \yii\web\Response::FORMAT_JSON, 'data' => [ 'message' => 'hello world', 'code' => 100, ], ]); }
Le code ci-dessus renvoie une chaîne formatée avec FORMAT_JSON
Lors de l'accès à l'aide de l'URL : http://localhost/basic/web/index.php?r=site/info, il renvoie avec succès
{"message":"hello world","code":100}
Ensuite, ajoutez du code dans behaviors()
public function behaviors() { return [ ... ... 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], 'info' => ['post'], ], ], ]; }
Le code ci-dessus utilise le filtre VerbFilter dans behaviors(), qui indique que lors de l'accès aux informations d'action, seule la méthode de requête POST peut être utilisée
À ce stade, utilisez l'outil RESTClient et sélectionnez la méthode de requête GET pour l'accès . cette fois, une erreur 405 est renvoyée
Modifiez à nouveau le code
public function behaviors() { return [ ... ... 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], 'info' => ['post','get'], ], ], ]; }
Autorisez les méthodes de requête POST et GET à accéder aux informations d'action, utilisez l'outil RESTClient pour y accéder et obtenez la valeur de retour lorsque vous sélectionnez la méthode de demande GET pour l'accès.
{"message":"hello world","code":100}
À ce stade, utilisez l'outil RESTClient pour envoyer la demande par courrier et renvoyer une erreur 405.
À ce moment, modifiez le fichier web.php
'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => '4mWc84oNsYJpc-nnnjMwyOOiCTgcThig', 'enableCookieValidation' => false, 'enableCsrfValidation' => false, ],
et ajoutez ces deux lignes de code pour contrôler la protection des cookies et les stratégies de prévention CSRF
'enableCookieValidation' => false, 'enableCsrfValidation' => false,
envoyez à nouveau une demande de accès par la poste.
Remarque : Vérification CSRF
Car lors de l'accès à la page Web, il y aura une entrée cachée correspondante :_csrf dans le formulaire pour vérification Uniquement lorsque la vérification est effectuée. L'accès
plutôt que l'accès aux pages Web (pas via des formulaires Web, tels que les requêtes CURL en ligne de commande) ne peut pas passer la vérification CSRF.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!