处理来自被阻止的IP的POST请求

我有一个恶意用户针对我的网站,发送大量的POST请求。 我有自动化系统来阻止滥用IP的问题,但问题是我通过数据库阻止他们在我的PHP代码中。 所以他们发出的每一个post请求都会调用一个数据库。 这是创造一个紧张。 我也以冷却时间的forms做这个检查。

由于我使用Cloudflare,我不能自动添加滥用IP到iptables什么的,而且apache也没有得到真正的ip。

处理这个问题的最好方法是什么? 我一直阻止他正在使用的VPN的IP范围,但是被使用的IP一旦被阻塞就会切换。

您可以通过安装mod_cloudflare来查看访问者的实际IP。

https://support.cloudflare.com/hc/en-us/articles/200170836-How-do-I-restore-original-visitor-IP-to-Apache-Web-Servers-

如何将原始访客IP恢复到Apache Web服务器?

要将原始访问者IP地址恢复到运行在Apache httpd Web服务器上的日志文件和Web应用程序,您需要安装mod_cloudflare。 要安装mod_cloudflare,请按照我们的下载页面上描述的安装步骤进行操作。

之后,您可以在任何请求到达任何PHP脚本之前,通过htaccess阻止Apache级别的恶意IP。

更新:

Cloudflare下载页面为常见的Linux发行版提供了现成的软件包。 如果您的发行版不受支持,您可以按照以下说明为您的apache编译模块: https : //www.cloudflare.com/resources-downloads#mod_cloudflare

选项4:手动安装:Debian / Ubuntu

mod_cloudflare有一些需要先安装的软件依赖关系:

apt-get install libtool apache2-dev

注意:如果你发现你无法安装apache2-dev,那么你应该安装:

apt-get install libtool apache2-threaded-dev

接下来,您应该将mod_cloudflare源文件下载到您的服务器上:

wget https://www.cloudflare.com/static/misc/mod_cloudflare/mod_cloudflare.c

最后,安装模块。 根据您的系统,要运行的命令可能是apxs或apxs2。 所以,运行下面两个命令之一。 如果在运行时发现“命令未find”,请尝试另一个命令:

apxs -a -i -c mod_cloudflare.c

apxs2 -a -i -c mod_cloudflare.c