Apache PHP REST API 处理/阻止 Web 攻击尝试

Apache PHP REST API 处理/阻止 Web 攻击尝试

我们目前正在 Apache Debian 服务器上运行 PHP API(所有 URL 都被重写为 index.php 以进行路由处理)。

编辑:(我想我可能在错误的 StackExchange 上找到了这个问题,所以我很抱歉,我是从另一个问题中想到这里的。)

过去几周,“网络攻击”的数量有所增加。

例如,这包含在两到三分钟内对以下端点发出的 1000 多个请求的会话:

  • /old/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
  • /plus/e7xue.php
  • /wp-includes/fonts/wp-login.php
  • /?XDEBUG_SESSION_START=phpstorm
  • /cgi-bin/mainfunction.cgi
  • 400 多个随机 .php 文件,有效载荷为<?=die(@md5(Apri1));?>
  • ..

我已经启用了 Apachemod_evasive模块,但是这会导致很多误报,因为(我认为的原因是)正常的 API 路由被重写到 index.php 文件,而规避模块将其标记为“相同的网站/页面”请求(?)。

安全方面,我并不“那么”担心,我们所有的服务都是最新的,运行最新的补丁,API 有一个安全墙,...但由于路由处理,所有这些请求都会“启动”API,从而给服务器带来不必要的负载/压力。

我搜索过论坛和类似的东西,但我真的找不到“解决方案”。 (或者它与 Wordpress 的插件等有关)

现在来谈谈实际问题: 怎样才能有效地解决这个问题?

我考虑在 API 中加入自定义处理,检查对“未映射端点(导致 404)”的请求,记录 IP 地址,如果请求数量超过阈值,则将该 IP 地址添加到 .htaccess 以使用“拒绝来自”来阻止它(因为我不想启用 PHP 命令执行来将 IP 地址添加到例如iptables)。但这似乎效率低下,所有这些都可以在更高层处理吗?

我知道网络攻击每天都在发生,你无法真正阻止它,但我只是想将此类请求的数量保持在最低限度,因为作为“服务器管理员”,这些请求让我感到压力很大。

相关内容