如何强制 Mediawiki wiki 的所有用户重新登录?

问题描述 投票:0回答:3

我想要求 Mediawiki 实例的所有经过身份验证的用户重新登录。这是 Linux CentOS 6.5 x64、apache、mysql、memcached 上的 MW v1.23。

我不确定 PHP 在哪里存储用户会话。我检查了/etc/php.ini,但没有找到任何明确的内容。我创建了一个 phpinfo() 页面,发现 session.save_path 未设置。也许MW正在做自己的事情。

我可以访问代码、mysql 数据库、文件系统和 memcached。我们的安装使用 LdapAuthentication 扩展对 Active Directory 进行身份验证。

我检查了 LocalSettings.php 中的所有设置,结果是空的。

我搜索了可能影响会话存储位置的所有变量及其默认值。

我找到了一个解决方案,那就是更改 $wgCookiePrefix 的值。我正在寻找一种不需要更改配置的解决方案,例如删除对象、文件或数据库行。

mediawiki
3个回答
2
投票

最终我改变了 $wgCookiePrefix 的值。这是真正使所有用户的身份验证令牌 cookie 失效的最简单方法。

删除 php sess_ 文件并不会强制用户必须重新登录。下次访问时,会创建另一个 sess_ 文件并且用户保持登录状态。


0
投票

假设您没有更改默认值,请检查您的 PHP 保存会话的位置。在你的 php.ini 文件中你可能应该有这样的行:

; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = files

; http://php.net/session.save-path
session.save_path = "/tmp"

这会告诉您在哪里可以删除会话。 请注意,您也可以决定将会话存储在对象缓存中:https://www.mediawiki.org/wiki/Manual:$wgSessionsInObjectCache


0
投票

对于任何在当前 MediaWiki 版本上寻找解决方案的人来说,MediaWiki 1.27.0 中引入了

$wgAuthenticationTokenVersion

...更改该值将立即分离所有会话并注销所有用户。这是为了应对大规模帐户泄露等紧急情况。

参见 https://www.mediawiki.org/wiki/Manual:$wgAuthenticationTokenVersion

© www.soinside.com 2019 - 2024. All rights reserved.