无效的 CSRF 令牌。再次发送表格。管理员

Invalid CSRF token. Send the form again. Adminer

我在管理员中导出数据库时遇到此错误。 错误:无效的 CSRF 令牌。再次发送表格。如果您没有从管理员发送此请求,请关闭此页面。 需要帮助

您的会话应包含 CSRF 令牌以防止 CSRF 攻击。此消息意味着您没有存储令牌,或者您的令牌与服务器生成的令牌不同。 我假设您没有在可以存储会话的 php.ini 中配置可写路径。请检查您是否将 php.ini 中的 session.save_path 设置为可写路径。

您使用的是什么设置?我用 nginx + php-fpm 发生了这种情况,在我对一台管理员工作的机器和一台没有管理员工作的机器进行 php.ini 的差异后,发现我需要清空session.cookie_domain.

的值

我的问题是会话 cookie 有 secure 标志,而我仅通过 http(不是 https)访问管理员。


我们的 nginx 配置有

fastcgi_param HTTPS on;

我不得不删除它。

有时会出现在以前的PHP版本上,这不是很重要。 您可以刷新页面或重新打开它,这将解决它。

检查 /var/lib/php/session 是否存在并且 nginx 可以写入。

试试这个!

chgrp nginx /var/lib/php/session

问题可能是会话保存路径不可写导致的。我遇到了同样的问题,我通过上面的命令修复了它。我使用 nginx,但如果您使用其他 Web 服务器,只需更改它即可。希望这对您有所帮助!

一小时前发生在我身上。 检查 /var 中是否有足够的 space。 我清理了它,它又能用了。

  1. 创建 phpinfo.php 文件

    <?php phpinfo(); ?>

  2. 找到真正的session保存路径

    /var/opt/remi/php72/lib/php/session

  3. 更改目录权限

    chmod -R 0777 /var/opt/remi/php72/lib/php/session

https://sourceforge.net/p/adminer/bugs-and-features/174/#429b : 是的,这个问题是由会话保存路径不可写引起的,将此行添加到文件的顶部,如果您的主机允许,它将起作用

ini_set('session.save_path','path/to/writable/directory/');

检查您的文件系统是否未满。

df - kh

可以解释为不能写在上面

在phpinfo中找到session.save_path(Centos为/var/lib/php/session)并更改模式:

chmod -R 777 /var/lib/php/session

完成!