@FastClick
Я человек, а ты? :)

Как запретить POST-запросы на сайт?

Есть сайт, как можно сделать ограничение POST-запросов - 10/секунду, а дальше выдавать ошибку 403?

Пересмотрел интернет, и узнал, что это возможно сделать как-то в файле .htaccess, подскажите, новичок в php.
  • Вопрос задан
  • 693 просмотра
Решения вопроса 1
@Kirill-Gorelov
С ума с IT
К примеру так.
Тут, правда, все и пост и гет.
$time_interval = 1;#In seconds
    $fast_request_check = ($_SESSION['last_session_request'] > time() - $time_interval);

    if (!isset($_SESSION)){
        session_start();
        $_SESSION['last_session_request'] = time();
        $_SESSION['request_cnt'] = 1;
    }elseif($fast_request_check && ($_SESSION['request_cnt'] < LIMIT_REQ_API_COUNT)) {
        # This is fast, consecutive request, but meets max requests limit
        $_SESSION['request_cnt']++;
    }elseif($fast_request_check){
        # This is fast, consecutive request, and exceeds max requests limit - kill it
        $str = Controller::response(false, array('code' => 1, 'description' => getMessage('Many_request_api')));
        exit($str); ;
    }else{
        # This request is not fast, so reset session variables
        $_SESSION['last_session_request'] = time();
        $_SESSION['request_cnt'] = 1;
    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Tweedledum
@Tweedledum
если через пхп, то мжно посмотреть какой тип запроса приходит $_SERVER['REQUEST_METHOD']
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы