phpMyAdmin 4.6.2令牌不匹配

时间:2016-06-07 14:43:37

标签: php mysql cookies nginx phpmyadmin

我在phpMyAdmin上遇到了可怕的“令牌不匹配”错误。我的安装位于一个流浪/安全盒中,因此它是一个干净的系统。

如果我将auth_type设置为“cookie”,我只是留在登录页面上,如果我将其设置为“http”,则会出现“令牌不匹配”错误。

phpMyAdmin config.inc.php

$cfg['blowfish_secret'] = '123'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! 
$i = 0;
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http'; // or cookie
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

Nginx配置:

server
  {
  listen 80 default;
  server_name dev.company.local _;

  root /var/www/sites/dev.company.local;

  access_log /var/log/nginx/dev.company.local-access.log combined;
  error_log /var/log/nginx/dev.company.local-error.log notice;
  index index.html index.php;

  include fastcgi_portal.conf;

  location /phpmyadmin/(.*) {
        alias /usr/share/phpMyAdmin;
  }

  }

我不会在这里发布我的php.ini,因为它有如此庞大的文件,但配置的选项很少。

我已经检查过的事情:

  • session.gc_maxlifetime = 1440
  • session.save_path = /var/lib/php/session(设置为777,也尝试/tmp
  • 已启用mcrypt
  • 清除浏览器cookie等
  • 验证了我的mysql凭据
  • 设置VM的正确时间+时区

我发现了https://sourceforge.net/p/phpmyadmin/bugs/3893/之类的错误报告,但对我来说似乎没有修复:)

其他信息:

  • CentOS release 6.7 (Final)
  • nginx version: nginx/1.0.15
  • PHP 5.6.22 (fpm-fcgi) (built: May 26 2016 15:45:15)

我已经尝试过当前的phpMyAdmin版本(4.6.2),以前的版本(4.6.1)和长期版本(4.4.15.6)。

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

假设您在Vagrant中使用Docker,那么很可能是由https://github.com/phpmyadmin/docker/issues/32引起的。

只需拉动较新版本的容器即可解决: - )。

答案 1 :(得分:0)

我的完全与我在Apache安全加固后描述的问题相同。 在我的情况下,结果是以下打破了phpMyAdmin:

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

评论出来并重新启动httpd后,一切都恢复了。

据说上面的标题设置是为了缓解cookie中使用HttpOnly和Secure标志的大多数常见跨站点脚本攻击,但看起来PMA开发人员还没有完全考虑这种情况。