yii2 utilise csrf pour empêcher les soumissions répétées de formulaires
Tout d'abord, par défaut, le csrf de yii2 vérification La vérification du jeton est enregistrée via des cookies. Pour éviter la soumission répétée de formulaires, vous devez d'abord changer cette méthode en session.
Vous pouvez y parvenir en modifiant la configuration du projet , le jeton CSRF enregistré dans la session ne sera pas rafraîchi ou effacé avant de saisir la prochaine demande de requête , et l'endroit pour vérifier le csrf est dans la méthode beforeAction du contrôleur. Le code source de yiiwebController est le suivant
'components' => [ 'request' => [ 'enableCsrfCookie' => false ] ]Bien sûr, il n'est pas nécessaire de changer le code source. D'accord, créez donc un nouveau contrôleur. et héritez de ce contrôleur pour implémenter la méthode beforeAction
/** * @inheritdoc */ public function beforeAction($action) { if (parent::beforeAction($action)) { if ($this->enableCsrfValidation && Yii::$app->getErrorHandler()->exception === null && !Yii::$app->getRequest()->validateCsrfToken()) { throw new BadRequestHttpException(Yii::t('yii', 'Unable to verify your data submission.')); } return true; } return false; }
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!