web-dev-qa-db-fra.com

Comment gérer la validation CSRF dans le framework Yii2?

Je rencontre un problème avec la validation CSRF dans yii2. La validation fonctionne bien avec le formulaire par défaut généré par le gii, mais lorsque je modifie le formulaire avec des balises HTML, la soumission du formulaire génère une erreur de requête incorrecte. J'ai désactivé la validation CSRF pour masquer l'erreur, mais je souhaite l'utiliser pour la sécurité de l'application et la validation des données.

Existe-t-il un moyen de résoudre cette erreur ou de le configurer pour qu'il fonctionne correctement dans ce scénario?

15
msucil

Je suppose que votre formulaire html n'a pas de champ _csrf caché, qui est généré automatiquement par les widgets Yii2 standard. 

Le code minimum de votre formulaire personnalisé pourrait donc ressembler à ceci:

<form method="post">
    <input type="hidden" name="<?= Yii::$app->request->csrfParam; ?>" value="<?= Yii::$app->request->csrfToken; ?>" />
    <button type="submit"> Save </button>
</form>
29
Pavel Bariev

Essaye ça

<?=yii\helpers\Html::hiddenInput(Yii::$app->request->csrfParam, Yii::$app->request->csrfToken)?>
0
Alex S