如果在任何 5 分钟间隔内有 5 个不正确,我想通过 IP 阻止所有请求,比如说 10 分钟。而且我正在考虑一种方法来存储这些数据,这种方式最不可能损害性能。
特别是关于如何设计数据库表和存储数据。
如果我为 IP 制作一个固定表作为主表,例如使用 mysql:
ip int(10) unsigned, primary key (ip)
attempts int(5),
lastaccess timestamp default current_timestamp
然后它会不充分地积累尝试......
另一方面,如果我用时间戳记录所有不正确的尝试,例如:
ip int(10) unsigned,
lastaccess timestamp default current_timestamp,
primary key (ip,lastaccess)
然后在 5 分钟的时间间隔内倒计时,表可能会因所有这些数据而变得非常庞大并减慢系统速度……它还需要维护。
所以,你能给我一些更方便的建议吗?...