所以我有一个Laravel支持的网站,只是推出,我有一个电子邮件设置,只要在网站上触发404错误就给我发电子邮件(作为第1阶段的措施) ,以确保网站上没有损坏的链接。)
最近,我收到了大量的电子邮件,报告了多个网址的404:
所有这些都来自同一个远程IP,我认为它发现它属于俄罗斯。
现在,我知道这意味着什么:一些黑客/机器人正在试图猜测网站的构建方式,可能是为了进行适当的攻击。</ p>
我的问题是,我是否可以自动执行以下过程:
补充说明:
答案 0 :(得分:1)
选项一 - 手动编辑.htaccess
最简单的说,您可以使用以下行手动将IP添加到.htaccess
文件中:
Order Deny,Allow
Deny from
192.168.0.1,
192.168.0.2
. . .
选项二 - 使用应用程序逻辑和数据库表
基于某些规则的更复杂的解决方案可以通过在数据库中保留一个表来实现 - 或者您可以使用JSON文件或类似的东西 - 这将有一个列:
每次用户点击404时,您都会使用$_SERVER['SERVER_ADDR']
记录其IP并尝试访问该网址。每次,检查表中是否已存在该IP,并运行一些逻辑以检查是否需要将它们添加到.htaccess
文件中:
$f = fopen(".htaccess", "w+");
fwrite($f, "192.168.0.1");
fclose($f);
您的404错误必须由您的应用程序处理,而不是由apache处理。
选项三 - fail2ban
最后,作为另一种选择,你也可以使用fail2ban来完成所有这些。
祝你好运! :)答案 1 :(得分:-1)
fail2ban或mod_security将是您自己服务器的最佳解决方案。