php - 有什么方法可以调整 MediaWiki 源以更快地拒绝匿名请求?

标签 php linux mediawiki iptables denial-of-service

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

其中一个想法似乎是改变 MediaWiki PHP 代码以更快地拒绝匿名请求。匿名访客只需查看页面;他们不应该编辑、查看页面源代码或查看历史记录。如果按照这个标准使用 IPTables 之类的东西进行屏蔽,那就更有趣了。我们拥有服务器的 root 访问权限。

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

我已阅读并继续关注有关 DoS 防护的更一般性问题 herehere 。单独发布此内容的原因是也许我们可以做一些 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/

相关文章:

php - 如何在侧边栏中添加带有链接的图像 - MediaWiki

php - Ajax 发送 GET 而不是 POST

php - MySQL数据库中有数据但图像不显示

java - 当我尝试在编辑器中键入时 Oracle SQL Developer 崩溃

html - 在MediaWiki中,如何在要点中插入代码块?

https - 在 Mediawiki 上使用带有 URI 的 HTTPS

php - 使用 PHP 将 XML feed 上传到 mysql

php - ZendFramework.htaccess

c - 头文件的问题

C++/C : Move Directory to Another Location