Php Can';t登录mediawiki:为了防止会话劫持而取消? 多年来,我一直在使用AWS EC2实例上托管的私有mediawiki 我认为有些扩展有问题,特别是在数学渲染的中间停止,所以我试图重新加载页面,谷歌浏览器浏览器的缓存都被删除了。 在此之后,我无法登录,看到以下消息:“您的登录会话似乎有问题;为了防止会话劫持,此操作已被取消。请返回上一页,重新加载该页面,然后重试。”

Php Can';t登录mediawiki:为了防止会话劫持而取消? 多年来,我一直在使用AWS EC2实例上托管的私有mediawiki 我认为有些扩展有问题,特别是在数学渲染的中间停止,所以我试图重新加载页面,谷歌浏览器浏览器的缓存都被删除了。 在此之后,我无法登录,看到以下消息:“您的登录会话似乎有问题;为了防止会话劫持,此操作已被取消。请返回上一页,重新加载该页面,然后重试。”,php,amazon-ec2,mediawiki,csrf,csrf-protection,Php,Amazon Ec2,Mediawiki,Csrf,Csrf Protection,我试过了, 1.重新启动apache服务器 2.尝试 3.尝试 4.尝试“进入您的LocalSettings.php,并在末尾添加以下行代码:session_save_path(“tmp”);在您的wiki安装目录中创建一个文件夹“tmp”。如中所示,授予权限777(权限)” 5.检查了服务器的硬盘存储,但其可用空间超过3.5gb 如何修复此问题?是否有任何方法可以禁用此真正有用的“预防”功能?结果是LocalSettings.php中的缓存设置出现了问题。删除(几乎所有)自定义缓存设置后解决。

我试过了, 1.重新启动apache服务器 2.尝试 3.尝试 4.尝试“进入您的LocalSettings.php,并在末尾添加以下行代码:session_save_path(“tmp”);在您的wiki安装目录中创建一个文件夹“tmp”。如中所示,授予权限777(权限)” 5.检查了服务器的硬盘存储,但其可用空间超过3.5gb


如何修复此问题?是否有任何方法可以禁用此真正有用的“预防”功能?

结果是LocalSettings.php中的缓存设置出现了问题。删除(几乎所有)自定义缓存设置后解决。

MediaWiki身份验证和会话处理已重写为1.27;(最后一节)。会话劫持警告意味着在会话中找不到您提交的CSRF令牌,这通常意味着配置错误。

添加
$wgSessionCacheType=CACHE\u DB
to
LocalSettings.php
解决了这个问题。无需更改
$wgMainCacheType

在没有“会话劫持预防”错误的情况下,这是可行的:


现在,我们两次在服务器空间不足后开始出现此错误。事实证明,这两次都是因为
objectcache
表已损坏

要修复它,只需运行SQL语句(例如在MySQL提示符下):


首先,这几乎肯定是解决问题的错误方法。第二,认为这个消息不太可能告诉你全部真相。有些地方出了问题,您的会话不再有意义。希望您在4时恢复了更改,因为只有当站点从未运行时,这才有意义。你清除了缓存,但你清除了cookies吗?你在匿名模式下尝试过吗?@Michael sqlbot是的,我在尝试失败后恢复了更改,我在匿名模式下尝试并清除了所有缓存和cookie,甚至删除并重新安装了Chrome,但问题仍然存在。我甚至没有编辑页面-我只是查看一个页面,清除缓存文件,注意渲染是挂在页面中间。好吧,那么我猜是因为会话缓存设置。很高兴知道1.27的某些内容已更改,感谢您的回答!顺便说一句,mediawiki没有留下其他解决问题的方法,这有点可笑。虽然我对mediawiki安装及其服务器拥有完全控制权,但它无条件拒绝或取消我采取的每一个操作并使我的数据完全无法访问,这是没有意义的。至少,必须有其他一些“紧急”恢复方法。通过直接数据库访问和维护脚本,您的数据仍然可用。CSRF是一个严重的安全漏洞,允许禁用CSRF预防是一个坏主意。而且这也不会有多大帮助,因为几乎所有的问题都是会话不会在多个请求上持久化。由此触发的第一个错误是会话劫持错误,但由于反劫持代码,您不能登录。您无法登录,因为服务器无法记住您(或任何内容)。错误消息可以改进->。我必须更改
$wgMainCacheType=CACHE\u ACCEL
$wgMainCacheType=CACHE\u无成功了。但请有人解释一下为什么这样做。此设置改变了什么?它是如何解决的?不幸的是:“表的存储引擎不支持修复”。。。
$wgMainCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_DB;
REPAIR TABLE objectcache;