Typo3 - 服务器攻击,过多的 php 请求导致错误 500 和 503

Typo3 - 服务器攻击,过多的 php 请求导致错误 500 和 503

我有一个较旧的 Typo3 (v4.5.x) 网站,一段时间以来,我的服务器一直受到脚本小子的攻击。他发送了很多 PHP 请求,这些请求的 URL 在我的服务器上并不存在。我收到了许多 PHP 500 错误,一段时间后,并行 php 进程的数量超出了限制,我的网站瘫痪了一段时间,无法访问。

知道我能做什么吗?如何避免不处理此类不存在的 URL?

如果我查看这些请求并在 Google 上搜索,就会发现都是关于 wordpress 或 joomla 的一些漏洞。有人知道是否存在一些此类请求的列表,可以将其添加到 apache 级别的过滤器/阻止列表中吗?即

  • 模板/原子/系统.php
  • wp-内容/语言/system.php
  • wp-admin/图片/系统.php
  • 插件/captcha/jproicaptcha.php
  • 模块/cgi.php
  • 模块/mod_articles/func.php
  • tmp/安装.css.php
  • ...

答案1

您有多种选择:

  • 如果请求来自单个 IP,只需在防火墙中阻止此 IP
  • 为这些请求返回 403 或 404 响应代码。您可以在 .htaccess 文件中或直接在 Apache 配置文件中执行此操作(请参阅 LocationMatch 指令http://httpd.apache.org/docs/2.4/mod/core.html#locationmatch
  • 使用应用程序级防火墙。mod_security 将是一个明智的选择。

答案2

这实际上并不是 TYPO3 特有的问题。这是一个如何避免/阻止 DOS(拒绝服务)攻击或在这种情况下黑客攻击的问题。

越早阻止/转移攻击者越好,因为你不希望他占用你的资源并产生不必要的流量。因此,如果你可以阻止 IP,你可能想要这样做(但请记住,IP 可能是由提供商动态分配的,因此这有点残酷,不应永久执行)。

一旦攻击者确实到达您的 Web 服务器并生成 HTTP 请求,您希望他分配尽可能少的资源。因此,不要在 TYPO3 中提供错误页面(或转向起始页),而是确保完全阻止该页面或为这些已知 URL 提供最小的 404 页面(例如,不需要访问数据库或运行 PHP 脚本的静态 html 页面)。

示例:Apache Web 服务器

RewriteRule ^/?(wordpress/wp-admin/|wp-login|wp-admin|test/wp-admin/|wp-admins|phpmyadmin|test.php|cacti|hack.php|tomcat.php|db.init.php|db_session.init.php|shell.php|mysql/|admin/index.php|dbadmin/|xampp|myadmin/|typo3/phpmyadmin|templates|wp-content|plugins|modules|tmp) - [L,F,NC]

相关内容