Yii 2.0针对AJAX请求的CSRF验证

我有一个ajax函数触发从我的数据库删除条目。

我需要对CSRF进行相同的验证。 我怎样才能做到这一点?

我正在发送CSRF cookie以及我的发布请求,但Yii 2.0未验证它,并且通过ajax传递的任何输入都会到达服务器。

如何为ajax请求做CSRF验证。

我们是否需要手动设置cookie并检查?


您不需要手动设置Cookie。

如果您使用jQuery CSRF令牌将自动发送。

例如,对于AngularJS,您可以手动添加它来请求像这样的参数:

yii.getCsrfParam(): yii.getCsrfToken()

确保您已包含YiiAsset

否则,您可以从元标记中检索它们(这基本上就是这两种方法的作用):

$('meta[name=csrf-param]').prop('content'): $('meta[name=csrf-token]').prop('content')

还要注意,为了启用CSRF验证, ControllerRequest的属性enableCsrfValidation属性都必须设置为true

更新:

另一个重要的事情要了解:

CSRF令牌将仅在此方法上得到验证: GETHEADOPTIONS

还要确保在主布局中有<?= Html::csrfMetaTags ?>


最后我确定了包括

    <?= Html::csrfMetaTags() ?>
链接地址: http://www.djcxy.com/p/26141.html

上一篇: Yii 2.0 CSRF validation for AJAX request

下一篇: Reading file to stdout with twisted