gpt4 book ai didi

mediawiki - 如何使 MediaWiki 帐户注册只允许唯一的电子邮件?

转载 作者:行者123 更新时间:2023-12-04 06:42:23 34 4
gpt4 key购买 nike

如何设置才能让 MediaWiki 不允许一个电子邮件地址创建多个帐户?垃圾邮件机器人仅使用一封电子邮件创建了 5 个帐户。

我一直在寻找配置设置或扩展,但没能找到。

与此相关的一个问题是使用类似于 JameeiohpbrxvlsHeadlon 的用户名创建垃圾邮件帐户的烦人问题。

垃圾邮件预防措施非常有效,因为不会创建实际的垃圾邮件文章,而只会创建垃圾邮件帐户。我安装了 TorBlock、ConfirmEdit 和 SimpleAntiSpam 以防止创建垃圾邮件帐户,但这似乎失败了。

最佳答案

这不太可能是一种非常有效的反垃圾邮件策略。大多数垃圾邮件机器人足够聪明,可以使用有效的电子邮件地址注册帐户,也可能足够聪明,可以在注册失败时尝试使用新地址。

就我个人而言,我发现对小型维基最有效的反垃圾邮件解决方案是ConfirmEdit。与 QuestyCaptcha .只需将 ConfirmEdit 配置为需要验证码才能创建帐户,这样您就不会收到垃圾帐户。这些问题不需要很难回答——事实上,它们可以是绝对微不足道的,只要它们对您的网站来说是独一无二的。


就是说,您可以通过编写 AbortNewAccount hook 来执行您的建议在数据库中查找用户的电子邮件地址,如果找到匹配则失败,类似这样(未经测试!):

$wgHooks['AbortNewAccount'][] = 'disallowDuplicateEmails';

function disallowDuplicateEmails( $user, &$message ) {
$email = $user->getEmail();
if ( !$email ) return true; // allow empty e-mail

$dbr = wfGetDB( DB_SLAVE );
$name = $dbr->selectField( 'user', 'user_name',
array( 'user_email' => $email ),
__METHOD__ );
if ( $name !== false) {
$message = wfMessage( 'signup-dup-email', $email, $name )->text();
return false;
}
return true; // no match
}

您还需要创建系统消息页面MediaWiki:signup-dup-email,内容如下:

The e-mail address <tt>$1</tt> is already used by [[User:$2|$2]].

请注意,此类检查至少存在两个潜在问题:

  • 它可以允许人们通过尝试使用他们怀疑可能属于现有用户的地址注册新帐户来“钓鱼”您用户的电子邮件地址(MediaWiki 通常将其视为私有(private)信息) .通过从错误消息中省略用户名可以在一定程度上缓解这种情况,但这仍然会泄露某人正在使用该地址的信息。

  • 上面的代码并没有检查地址是否已经被确认(并且检查这宁愿违背它的目的,除非你也要求所有用户确认他们的电子邮件地址),所以一个恶意的人可以通过创建具有相同地址的虚拟帐户来阻止其他人使用他们的电子邮件地址进行注册。

然而,绕过检查实际上相当容易,因为 a) 它检查完全匹配,例如只需更改主机名的大写就足以使检查通过,并且 b) 无论如何,它不会阻止用户在注册后将他们的电子邮件地址更改为他们想要的任何地址。这两个漏洞都可以被堵住,但需要更多的努力。

关于mediawiki - 如何使 MediaWiki 帐户注册只允许唯一的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16362505/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com