我是唯一一个在我的开发机器(家用电脑)上工作的人,它有一个Ubuntu操作系统。我不关心在生产服务器上必不可少的安全性。我讨厌如果我让phpmyadmin停留太长时间出现的令牌不匹配错误。所以我在第483到486行攻击了libraries / common.inc.php,强制phpmyadmin始终认为令牌匹配。
$token_mismatch = false;
/*if (PMA_isValid($_REQUEST['token'])) {
$token_mismatch = ($_SESSION[' PMA_token '] != $_REQUEST['token']);
}*/
这是解决这个问题的最好方法吗?这可能会搞砸其他事吗?
答案 0 :(得分:2)
禁用令牌:
库/ common.inc.php
/*
$token_mismatch = true;
if (PMA_isValid($_REQUEST['token'])) {
$token_mismatch = ($_SESSION[' PMA_token '] != $_REQUEST['token']);
}
*/
$token_mismatch = false;
答案 1 :(得分:0)
这应该没问题,但您也可以在config.inc.php
中增加$cfg\['LoginCookieValidity'\]
的值。请注意,您还必须增加PHP设置session.gc_maxlifetime
以匹配,因为PHP设置会覆盖phpMyAdmin,如果它更小。这将阻止您的会话过期。
关于问题的不匹配令牌部分,可能与即将到期的会话直接相关但不是预期的结果(您应该得到一个对话通知,告知您的会话已过期并重定向到登录界面)。我看到的主要原因是answered here并且通常是因为PHP有一个配置错误的session.save_path
目录(要么已被注释掉,要么不存在,或者权限不正确。)
如果做不到这一点,最近做了一些工作来改善令牌不匹配错误发生的时间,但这似乎与你所看到的问题没有直接关系。但是,您可以下载当前的" master"快照(https://github.com/phpmyadmin/phpmyadmin/并查找右侧的"下载ZIP"链接),或者我建议您查看版本4.3一旦它可用,这应该很快。
答案 2 :(得分:0)
在新版本中,只需将true
更改为false
中的libraries/common.inc.php
即可。但不建议在生产服务器中使用。
$token_mismatch = false;