我们基于 MediaWiki 的项目之一似乎受到 DoS 攻击 - 异常数量的匿名用户尝试编辑页面并查看或编辑历史请求。虽然该项目禁用了匿名编辑,并且这些匿名用户(我认为是机器人)实际上无法更改页面,但负载严重到足以显着降低服务器速度。
其中一个想法似乎是改变 MediaWiki PHP 代码以更快地拒绝匿名请求。匿名访客只需查看页面;他们不应该编辑、查看页面源代码或查看历史记录。如果按照这个标准使用 IPTables 之类的东西进行屏蔽,那就更有趣了。我们拥有服务器的 root 访问权限。
除了查看文章内容之外,是否可以更改 PHP 或使用某些外部工具来有效阻止所有匿名 MediaWiki 请求?
我已阅读并继续关注有关 DoS 防护的更一般性问题 here和 here 。单独发布此内容的原因是也许我们可以做一些 MediaWiki 特定的事情。
最佳答案
您是否尝试过更改用户权限? 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;
关于php - 有什么方法可以调整 MediaWiki 源以更快地拒绝匿名请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14590520/