Mediawiki的海量用户删除/合并/块(Mediawiki mass user delete/m

2019-09-17 10:33发布

我有500个左右的反垃圾邮件插件,并在我的wiki约5实际的注册用户。 我已经使用核武器删除自己的网页,但他们只是不停地重新发布。 我一直在使用reCAPTCHA的控制下注册垃圾邮件机器人。 现在,我只需要一种方法来删除/块/一次合并约500个用户。

Answer 1:

你可以只删除该帐户user手动表,或至少禁用与查询,如他们的身份验证信息:

UPDATE /*_*/user SET
  user_password    = '',
  user_newpassword = '',
  user_email       = '',
  user_token       = ''
WHERE
  /* condition to select the users you want to nuke */

(替换/*_*/你的$wgDBprefix ,如果有的话。哦,千万做好备份第一。)

歼灭user_passworduser_newpassword领域阻止用户登录。此外消灭user_email阻止他们请求通过电子邮件新的密码,并消灭user_token滴他们可能有任何活动的会话。


更新:因为我第一次张贴了这个,我已经从链接到MediaWiki安装清理大量的垃圾邮件的用户和内容的进一步的经验。 我已经证明我所用的方法(这基本上包括首先从数据库中删除用户,然后消灭了所有的现在孤儿的修订,最后运行rebuildall.php固定链接表)中对网络管理者堆栈交易所这个答案 。


或者,你也可能会发现扩展:RegexBlock有用:

“RegexBlock是与封锁,查看和解锁使用正则表达式的用户名和IP地址的接口增加了专门的页面的扩展。”



Answer 2:

有参与应用在接受答案的解决方案的风险。 该方法可能会损坏您的数据库! 它不完全删除用户,什么都不做,以保持参照完整性,并且几乎肯定会导致显示错误。

这里一个更好的解决办法,提出(前提条件是你已经安装了用户合并扩展 ):

我有一个有点尴尬的方式,通过一个变通来完成批量合并。 希望有人会发现它有用! (必须在电子表格有点字符串连接能力;或者一个可以使用Python或类似的脚本;或者使用散装替换功能的文本编辑器)

  1. 准备好所有SPAMuserIDs的列表,将它们存储在一个电子表格或文本文件。 该列表可以从用户创建日志准备。 如果您有DB访问时,Wiki_user表可以导入本地列表。

  2. 用于提交合并&删除用户形式POST方法(通过单击按钮)应当被转换成get方法。 这将让我们很长的URL。 看到在第二评论(由Matthew西莫努)月13日/月/ 2009) http://www.mathworks.com/matlabcentral/newsreader/view_thread/242300的方法。 生成的URL字符串应该是象下面这样:

    HTTP://(维基域)/特殊:UserMerge olduser =(OldUserNameHere)&NEWUSER =(NewUserNameHere)&deleteuser = 1&标记= 0d30d8b4033a9a523b9574ccf73abad8%2B \

  3. 现在,这个划分URL分为四个部分:

 A: http: //(Your Wiki domain)/Special:UserMerge?olduser= 

 B: (OldUserNameHere) 

 C: &newuser=(NewUserNameHere)&deleteuser=1 

 D: &token=0d30d8b4033a9a523b9574ccf73abad8%2B\
  1. 现在使用文本编辑器或电子表格,可以在前面的垃圾邮件的用户ID与部分A和部分用C和D部分C后缀的每个将包括NEWUSER(这是一个特别创建的单个伪用户ID)。 的部分d,令牌字符串是将每个用户的每个会话被改变的依赖会话令牌。 所以,你需要每次需要一个新的会话/批处理工作的时间来获得新令牌。

  2. 通过以上的步骤,你应该得到的URL的一个长长的清单,每一个好做一个合并和删除操作一个用户。 现在,我们可以创建一个简单的HTML文件,查看它,并在Firefox中使用批量下载喜欢的DownThemAll。 再添加两个片“链接文字”在开始和结束每行。 同时添加在顶部和底部处,保存文件(用于例子:) userlist.html

  3. 打开该文件在Firefox中,使用的DownThemAll插件和下载的所有文件! 实际上,您正在访问的每个用户的合并和删除页面,点击按钮!

虽然这也许起初看起来冗长和棘手的工作,一旦你按照这个方法,你可以删除数以万计的用户没有太多的手工劳动。

如果操作是通过打开一些下载的HTML文件(或者通过最近在另一个窗口的变化看)进展顺利,您可以验证。

一个优点是,它并不直接编辑MySQL的网页。 它也不需要直接访问数据库。

我做了一些改写为引用文本的,因为原来的文本包含一些瑕疵。



文章来源: Mediawiki mass user delete/merge/block