Есть ли способ ограничить доступ в час для каждого пользователя в apache2?

Есть ли способ ограничить доступ в час для каждого пользователя в apache2?

При запросе уже требуется форма POST с идентификатором пользователя, поэтому, если я могу зарегистрировать идентификатор пользователя формы POST, я думаю, что будет способ ограничить n раз (я думаю, 3 раза в час будет достаточно) доступа к этому идентификатору пользователя в течение часа. (Это означает, что идентификатор пользователя «A» может получить доступ только 3 раза в час, и идентификатор пользователя «B» также может получить доступ 3 раза в час, .....)

Но я не смог найти, как это сделать.

Он просто проксирует запрос для обслуживания другого сервиса - теперь он использует ProxyPass только на Apache2, поэтому его нужно настроить внутри конфигурации Apache2 (я думаю).

Есть ли способ это сделать?

решение1

Не на уровне веб-сервера, это нужно сделать на уровне приложения; то есть после POST приложение должно сообщить пользователю что-то вроде «вы сделали слишком много запросов за слишком короткое время, пожалуйста, повторите попытку позже».

Насколько мне известно, веб-сервер Apache (но это справедливо и для IIS) может регулировать запросы только с использованием параметров HTTP (таких как веб-сайт или URL) или сетевых параметров (таких как исходный IP-адрес или использование полосы пропускания).


(Пожалуйста, поправьте меня, если я ошибаюсь. Я не эксперт по Apache.)

решение2

Взгляни наэтот вариант использования mod_securityкоторые могут использовать файлы cookie или содержимое URI, поэтому вы, вероятно, также можете извлечь данные POST. Или просто возьмите их IP и используйте его, поскольку любой может ввести другое имя пользователя в форме, чтобы обойти это.

Связанный контент