我需要在24小时内将超过1,000个请求发送到数据库后触发我的速率限制器,但是它不起作用。我对PHP不太了解,无法弄清楚我做错了什么,有人可以帮助我吗?
这是针对我正在使用的API以及如何实施速率限制器以防止机器人攻击的API。我试图查看是否是我的会话,但我无法弄清楚出了什么问题。
它在名为sessionControl的php类中
public function Rate24HourCheck() {
$this->last_request = Array();
array_push($this->last_request, time());
$count = 0;
foreach($this->last_request as $item) {
$this->curr_request = time();
$count ++;
if($this->new_request > ($this->curr_request - 86400) && $count > 1000) {
throw new Exception("24 hr rate limit exceeded.");
die();
}
}
if($this->new_request < ($this->curr_request - 86400)) {
unset($this->last_request);
}
$this->last_request = time();
}
每当我尝试通过将速率限制器从1,000更改为5或10来触发速率限制器时,我都不会收到任何响应/错误,表明已超出速率限制器。