限速器未触发。为什么不起作用?

时间:2019-10-01 05:54:32

标签: php session rate-limiting

我需要在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来触发速率限制器时,我都不会收到任何响应/错误,表明已超出速率限制器。

0 个答案:

没有答案