ограничение скорости IP-адреса - PullRequest
0 голосов
/ 13 сентября 2018

Я использую Oracle HTTP Server (на самом деле это Apache 2.2), и я хотел бы реализовать правило modsecurity, ограничивающее число обращений, которые может выполнить данный IP для определенного пула страниц.

В этой конкретной ситуации я бы хотел перенаправить вызов на google.com, если этот ip уже запросил один из ресурсов, соответствующих этому шаблону, 20 раз.

Я выполнил это правило

<LocationMatch "^/customapps/">
  SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog,id:100
  SecRule IP:COUNTER "@ge 20" "phase:3,pause:100,deny,redirect:https://www.google.com/,setenv:RATELIMITED,skip:1,nolog,id:200"
  SecAction "phase:2,pass,setvar:IP.counter=+1,nolog,id:300"
  SecAction "phase:2,deprecatevar:IP.counter=10/1,pass,nolog,id:400"
  SecAction "logdata:'COUNTER:: %{IP.counter}',id:500"
  Header always set Retry-After "10" env=RATELIMITED
</LocationMatch>

но переменная counter всегда равна 1 за каждый удар, который я делаю. Я использую Jmeter, чтобы сделать тесты.

Что не так в этом правиле?

Спасибо.

...