-3

我们的一个基于 MediaWiki 的项目似乎受到 DoS 攻击 - 异常数量的匿名用户试图编辑页面并查看或编辑历史请求。虽然在该项目上禁用了匿名编辑,并且这些匿名用户(我假设是机器人)实际上无法更改页面,但负载严重到足以显着降低服务器速度。

其中一个想法似乎改变了 MediaWiki PHP 代码以更快地拒绝匿名请求。匿名访问者只需要查看页面;他们不应该编辑、查看页面源或查看历史记录。使用像 IPTables 这样的东西来遵循这个标准进行屏蔽会更有趣。我们对服务器具有 root 访问权限。

除了查看文章内容之外,是否可以更改 PHP 或使用一些外部工具来有效阻止所有匿名 MediaWiki 请求?

我已经阅读并继续关注这里这里有关 DoS 保护的更一般的问题。单独发布此内容的原因是也许我们可以做一些 MediaWiki 特定的事情。

4

1 回答 1

1

您是否尝试过更改用户权限?MediaWiki 文档展示了如何编辑 LocalSettings.php 来设置权限。

与防火墙一样,您应该首先禁止所有编辑权限,然后将其重新添加到您想要允许的组(如注册用户)。

从他们的手册中,http://www.mediawiki.org/wiki/Manual:User_rights

This example will disable editing of all pages, then re-enable for 
users with confirmed e-mail addresses only:


 # Disable for everyone.
 $wgGroupPermissions['*']['edit']              = false;
 # Disable for users, too: by default 'user' is allowed to edit, even if '*' is not. 
 $wgGroupPermissions['user']['edit']           = false;
 # Make it so users with confirmed e-mail addresses are in the group.
 $wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
 # Hide group from user list. 
 $wgImplicitGroups[] = 'emailconfirmed';
 # Finally, set it to true for the desired group.
 $wgGroupPermissions['emailconfirmed']['edit'] = true;
于 2013-01-29T19:24:00.393 回答