我正在寻找 Apache Web 服务器的替代安全注意事项。我通常使用 PHP 和 MySQL。
对于用户登录等进程,我将 IP 地址、尝试次数和上次尝试时间保存在数据库中,因此如果有人在过去 n 分钟或秒内尝试超过 x 次,我只需阻止 IP 地址。
当有很多不同的过程(如用户登录)时,将 IP 地址保留在数据库中听起来并不正确(因为会降低性能并且要做很多事情)。我知道如果你想要安全,你需要牺牲一些性能,但是有没有更好的方法来阻止用户发出过多的请求?也许是 Apache 的一个模块?还是对服务器的较低级别的警告?我特别想避免不必要的数据库工作。
我考虑过使用 CAPTCHA,但将它用于每种形式都会扼杀用户体验。在 n 分钟内的 x 请求后使用它仍然需要我提到的第一种技术。
缓存系统可能会有所帮助,但我看不出它如何防止暴力攻击或用垃圾填充数据库。AFAIK 它只有助于从数据库中读取(如果我错了,请纠正我)。