내보기에서 양식을 포함하여 HTML 조각을 캐싱했습니다.yii2 캐시에서 동적 csrf 숨겨진 입력을 렌더링합니다.
<?php $form = ActiveForm::begin(); ?>
<?php echo $form->field($model, 'name'); ?>
<?= Html::submitButton('Save') ?>
<?php ActiveForm::end() ?>
CSRF 유효성 검사 토큰에 문제가 있습니다. 정적 (정적이 아님)이어야합니다. 거기에 다른/더 나은 방법을 사용하지 않고 그것을 다시 렌더링하지 않고 렌더링하는 방법이 있습니까?
<?php Yii::$app->request->enableCsrfValidation = false; ?>
<?php $form = ActiveForm::begin(); ?>
<?php Yii::$app->request->enableCsrfValidation = true; ?>
<input type="hidden" name="_csrf" value="<?php echo $this->renderDynamic('return Yii::$app->request->csrfToken;'); ?>">
<?php echo $form->field($model, 'name'); ?>
<?= Html::submitButton('Save') ?>
<?php ActiveForm::end() ?>
내가 &이 CsrfValidation를 활성화 또는 비활성화하지 않으면 나는 HTML에서 두 개의 토큰을 가지고 - 최초의 캐시에서이고, 두 번째는 동적입니다.
이 작업을 수행 할 필요가 없습니다. main.php 파일 레이아웃에 csrf 메타 태그를 추가 했습니까? 그리고 작곡가를 업데이트 할 때마다 – Kshitiz
내가 모든 것을 업데이트했는지 확인하십시오. 내가하지 않으면 내 양식에 두 개의 숨겨진 _csrf 토큰이 있습니다 ... – emte
view site login.php 페이지를 확인하십시오. 그들은 활성 양식을 사용하고 있습니다. 얼마나 많은 csrf 토큰이 있는지 확인하십시오. 알려주세요 – Kshitiz