Принудительное указание содержимого и HTTP-кода с помощью mod_security2 при запрете - PullRequest
0 голосов
/ 05 ноября 2018

Цель: если правило является триггером, замените обычный ответ конкретным контентом на определенный код ответа в соответствии с URI запроса.

Я пытаюсь создать набор правил для замены нормального контента на конкретный контент:

  • запрос: /test/my-request/1.html -> предоставить содержимое /error-page/error-abc.html с http-кодом 429
  • запрос: /test/my-request/50.html -> предоставить содержимое /error-page/error-cde.html с http-кодом 429

Я пытался использовать

SecRule IP:MYCOUNTER "@gt 3" "phase:2,pause:300,deny,status:429,setenv:RATELIMITED,skip:1,nolog,id:10000003"
ErrorDocument 429 "Rate Limit Exceeded"

Проблема в том, что я не могу определить коды http вне допустимого диапазона, поэтому я привязан к разрешенному коду, и он в любом случае грязный, и ErrorDocument допускает только один ответ.

Я попытался перехватить его с помощью директивы proxy , поскольку я не хочу, чтобы клиент экспериментировал с перенаправлением, с

SecRule IP:MYCOUNTER "@gt 3" "phase:2,pause:300,deny,status:429,setenv:RATELIMITED,skip:1,nolog,id:10000003,proxy:http://127.0.0.1/error-page/error-cde.html"

но код ответа не переопределяется на 429 и возвращается http-200 (из прокси-сервера).

...