LINUX.ORG.RU
решено ФорумAdmin

mod_security


0

1

Помогите разобраться с сабжем (скомпилен можулем для nginx). Насколько я понял, он отказывается пропускать POST запросы при включенной опции SecResponseBodyAccess On.

Если же эту опцию отключить (установить в Off), всё работает. Пот логи из первого (удачного) и второго (неудачного) случая:

[4] Initialising transaction (txid AcAGAc@cAcAcccAcAcAcpcAc).
[5] Adding request cookie: name "JSESSIONID", value "1"
[4] Transaction context created (dcfg 19d0040).
[4] Starting phase REQUEST_HEADERS.
[4] Second phase starting (dcfg 19d0040).
[4] Input filter: Request body access not enabled.
[4] Starting phase REQUEST_BODY.
[4] Hook insert_filter: Adding output filter (r 1a2fcf8).
[9] Output filter: Receiving output (f 1a30f08, r 1a2fcf8).
[4] Starting phase RESPONSE_HEADERS.
[4] Output filter: Response body buffering is not enabled.
[9] Content Injection: Not enabled.
[4] Output filter: Completed receiving response body (non-buffering).
[4] Starting phase RESPONSE_BODY.
[4] Output filter: Output forwarding complete.
[9] Output filter: Sending input brigade directly.
[4] Initialising logging.
[4] Starting phase LOGGING.
[4] Recording persistent data took 0 microseconds.
[4] Audit log: Ignoring a non-relevant request.
[4] Initialising transaction (txid AHAcAcKDAcAcAEDrAoAcA2Ac).
[5] Adding request cookie: name "JSESSIONID", value "1"
[4] Transaction context created (dcfg 227d040).
[4] Starting phase REQUEST_HEADERS.
[4] Second phase starting (dcfg 227d040).
[4] Input filter: Request body access not enabled.
[4] Starting phase REQUEST_BODY.
[4] Hook insert_filter: Adding output filter (r 22dccf8).
[9] Output filter: Receiving output (f 22ddf08, r 22dccf8).
[4] Starting phase RESPONSE_HEADERS.
[4] Output filter: Not buffering response body for unconfigured MIME type "null".
[9] Content Injection: Not enabled.
[4] Output filter: Completed receiving response body (non-buffering).
[4] Starting phase RESPONSE_BODY.
[4] Output filter: Output forwarding complete.
[9] Output filter: Sending input brigade directly.
То есть отличие в том, что при включенном SecResponseBodyAccess, не начинается «Starting phase LOGGING.» В чём может быть дело?

phase LOGGING не начинается потому, что логировать нечего - т.к. запрос успешный. Если то, что написано, правда, он пропускает POST-ы но блокирует результат его работы. См. остальные логи, там должна быть причина.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

phase LOGGING не начинается потому, что логировать нечего - т.к. запрос успешный

Но ничего не логируется и в успешном случае.

он пропускает POST-ы но блокирует результат его работы

Похоже проблема только в том случае, когда бекэнд (tomcat) отвечает на POST статусом 302. Может быть как-то связано с этим?

См. остальные логи, там должна быть причина

В остальных (SecAuditLog же имеется ввиду, да?) пусто совсем.

generator ★★★
() автор топика
Ответ на: комментарий от generator

пусто совсем

Значит нужно смотреть конфиги, и включать вывод всего подряд. Без логов гадать неэффективно.

SecAuditLog же имеется ввиду, да?

Хоть что нибудь. У меня в апачевском error_log-е тоже можно найти id правила; но в новых crs этого может быть недостаточно.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Кажется, я понял в чём дело. Когда mod_secutity проверяет тело ответа, кончается память: http://pastebin.com/TKMbC404

Похоже на баг, к сожалению :(

generator ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.