在多台服务器上进行Yii2 CSRF验证

时间:2016-05-02 22:17:30

标签: php yii yii2 load-balancing csrf

我有部署在三台服务器上的应用程序。使用负载均衡器请求将多路复用到服务器。问题是一台服务器生成CSRF令牌,该令牌在另一台服务器上验证,验证失败。

如果会话在CSR中,CSRF是否应该保存在每台服务器上?

有没有人能解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

是的,想法是将它存储在服务器的常用位置。

在我们的案例中,我们所有的服务器都使用一个memcache服务器进行会话存储,我们没有遇到任何有关CSRF令牌的问题。

此外,如果您正在使用PageCache,如果还缓存了CSRF令牌,则可能会遇到问题。为避免缓存CSRF令牌,您可以在布局中使用renderDynamic函数,如下所示:

<?= $this->renderDynamic(' return \yii\helpers\Html::csrfMetaTags(); '); ?>