|
Packit Service |
384592 |
### Tests for directives altering how a response is handled
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
# SecResponseBodyMimeTypesClear
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
type => "config",
|
|
Packit Service |
384592 |
comment => "SecResponseBodyMimeTypesClear",
|
|
Packit Service |
384592 |
conf => qq(
|
|
Packit Service |
384592 |
SecRuleEngine On
|
|
Packit Service |
384592 |
SecResponseBodyAccess On
|
|
Packit Service |
384592 |
SecResponseBodyMimeTypesClear
|
|
Packit Service |
384592 |
SecDebugLog $ENV{DEBUG_LOG}
|
|
Packit Service |
384592 |
SecDebugLogLevel 9
|
|
Packit Service |
384592 |
SecRule RESPONSE_BODY "TEST" "phase:4,deny,id:500237"
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
match_log => {
|
|
Packit Service |
384592 |
-error => [ qr/Access denied/, 1 ],
|
|
Packit Service |
384592 |
debug => [ qr/Not buffering response body for unconfigured MIME type/, 1 ],
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
match_response => {
|
|
Packit Service |
384592 |
status => qr/^200$/,
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
request => new HTTP::Request(
|
|
Packit Service |
384592 |
GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt",
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
# SecResponseBodyAccess & SecResponseBodyMimeType
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
type => "config",
|
|
Packit Service |
384592 |
comment => "SecResponseBodyAccess On",
|
|
Packit Service |
384592 |
conf => qq(
|
|
Packit Service |
384592 |
SecRuleEngine On
|
|
Packit Service |
384592 |
SecDebugLog $ENV{DEBUG_LOG}
|
|
Packit Service |
384592 |
SecDebugLogLevel 9
|
|
Packit Service |
384592 |
SecResponseBodyAccess On
|
|
Packit Service |
384592 |
SecResponseBodyMimeType text/plain null
|
|
Packit Service |
384592 |
SecRule RESPONSE_BODY "TEST" "phase:4,deny,id:500238"
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
match_log => {
|
|
Packit Service |
384592 |
error => [ qr/Access denied with code 403 \(phase 4\)\. Pattern match "TEST" at RESPONSE_BODY\./, 1 ],
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
match_response => {
|
|
Packit Service |
384592 |
status => qr/^403$/,
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
request => new HTTP::Request(
|
|
Packit Service |
384592 |
GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt",
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
type => "config",
|
|
Packit Service |
384592 |
comment => "SecResponseBodyAccess Off",
|
|
Packit Service |
384592 |
conf => qq(
|
|
Packit Service |
384592 |
SecRuleEngine On
|
|
Packit Service |
384592 |
SecDebugLog $ENV{DEBUG_LOG}
|
|
Packit Service |
384592 |
SecDebugLogLevel 9
|
|
Packit Service |
384592 |
SecResponseBodyAccess Off
|
|
Packit Service |
384592 |
SecResponseBodyMimeType text/plain null
|
|
Packit Service |
384592 |
SecRule RESPONSE_BODY "TEST" "phase:4,deny,id:500239"
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
match_log => {
|
|
Packit Service |
384592 |
-error => [ qr/Access denied/, 1 ],
|
|
Packit Service |
384592 |
debug => [ qr/Response body buffering is not enabled\./, 1 ],
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
match_response => {
|
|
Packit Service |
384592 |
status => qr/^200$/,
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
request => new HTTP::Request(
|
|
Packit Service |
384592 |
GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt",
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
# SecResponseBodyLimit
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
type => "config",
|
|
Packit Service |
384592 |
comment => "SecResponseBodyLimit (equal)",
|
|
Packit Service |
384592 |
conf => qq(
|
|
Packit Service |
384592 |
SecRuleEngine On
|
|
Packit Service |
384592 |
SecResponseBodyAccess On
|
|
Packit Service |
384592 |
SecResponseBodyMimeType text/plain null
|
|
Packit Service |
384592 |
SecResponseBodyLimit 8192
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
match_log => {
|
|
Packit Service |
384592 |
-error => [ qr/Content-Length \(\d+\) over the limit/, 1 ],
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
match_response => {
|
|
Packit Service |
384592 |
status => qr/^200$/,
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
request => new HTTP::Request(
|
|
Packit Service |
384592 |
GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
type => "config",
|
|
Packit Service |
384592 |
comment => "SecResponseBodyLimit (less)",
|
|
Packit Service |
384592 |
conf => qq(
|
|
Packit Service |
384592 |
SecRuleEngine On
|
|
Packit Service |
384592 |
SecResponseBodyAccess On
|
|
Packit Service |
384592 |
SecResponseBodyMimeType text/plain null
|
|
Packit Service |
384592 |
SecResponseBodyLimit 9000
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
match_log => {
|
|
Packit Service |
384592 |
-error => [ qr/Content-Length \(\d+\) over the limit/, 1 ],
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
match_response => {
|
|
Packit Service |
384592 |
status => qr/^200$/,
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
request => new HTTP::Request(
|
|
Packit Service |
384592 |
GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
type => "config",
|
|
Packit Service |
384592 |
comment => "SecResponseBodyLimit (greater)",
|
|
Packit Service |
384592 |
conf => qq(
|
|
Packit Service |
384592 |
SecRuleEngine On
|
|
Packit Service |
384592 |
SecResponseBodyAccess On
|
|
Packit Service |
384592 |
SecResponseBodyMimeType text/plain null
|
|
Packit Service |
384592 |
SecResponseBodyLimit 8000
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
match_log => {
|
|
Packit Service |
384592 |
error => [ qr/Content-Length \(\d+\) over the limit \(8000\)\./, 1 ],
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
match_response => {
|
|
Packit Service |
384592 |
status => qr/^500$/,
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
request => new HTTP::Request(
|
|
Packit Service |
384592 |
GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
# ResponseBodyLimitAction
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
type => "config",
|
|
Packit Service |
384592 |
comment => "SecResponseBodyLimitAction Reject",
|
|
Packit Service |
384592 |
conf => qq(
|
|
Packit Service |
384592 |
SecRuleEngine On
|
|
Packit Service |
384592 |
SecResponseBodyAccess On
|
|
Packit Service |
384592 |
SecResponseBodyMimeType text/plain null
|
|
Packit Service |
384592 |
SecResponseBodyLimit 5
|
|
Packit Service |
384592 |
SecResponseBodyLimitAction Reject
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
match_log => {
|
|
Packit Service |
384592 |
error => [ qr/Content-Length \(\d+\) over the limit \(5\)\./, 1 ],
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
match_response => {
|
|
Packit Service |
384592 |
status => qr/^500$/,
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
request => new HTTP::Request(
|
|
Packit Service |
384592 |
GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
type => "config",
|
|
Packit Service |
384592 |
comment => "SecResponseBodyLimitAction ProcessPartial",
|
|
Packit Service |
384592 |
conf => qq(
|
|
Packit Service |
384592 |
SecRuleEngine On
|
|
Packit Service |
384592 |
SecResponseBodyAccess On
|
|
Packit Service |
384592 |
SecResponseBodyMimeType text/plain null
|
|
Packit Service |
384592 |
SecResponseBodyLimit 5
|
|
Packit Service |
384592 |
SecDebugLog $ENV{DEBUG_LOG}
|
|
Packit Service |
384592 |
SecDebugLogLevel 4
|
|
Packit Service |
384592 |
SecResponseBodyLimitAction ProcessPartial
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
match_log => {
|
|
Packit Service |
384592 |
-error => [ qr/Content-Length \(\d+\) over the limit/, 1 ],
|
|
Packit Service |
384592 |
debug => [ qr/Processing partial response body \(limit 5\)/, 1 ],
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
match_response => {
|
|
Packit Service |
384592 |
status => qr/^200$/,
|
|
Packit Service |
384592 |
},
|
|
Packit Service |
384592 |
request => new HTTP::Request(
|
|
Packit Service |
384592 |
GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
|
|
Packit Service |
384592 |
),
|
|
Packit Service |
384592 |
},
|