Skip to content

Commit 42a472a

Browse files
author
Felipe Zimmerle
committed
Check if response body inspection is enabled before process it
1 parent 389cc25 commit 42a472a

9 files changed

+20
-0
lines changed

Diff for: CHANGES

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
v3.0.3 - YYYY-MMM-DD (to be released)
22
-------------------------------------
33

4+
- Checks if response body inspection is enabled before process it
5+
[Issue #1643 - @zoltan-fedor, @dennus, @defanator, @zimmerle]
46
- processContentOffset Cleanup
57
[Issue #1757 - @p0pr0ck5]
68
- Fix setvar parsing of quoted data

Diff for: src/transaction.cc

+7
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,13 @@ int Transaction::processResponseBody() {
10931093
return true;
10941094
}
10951095

1096+
if (m_rules->m_secResponseBodyAccess != RulesProperties::TrueConfigBoolean) {
1097+
#ifndef NO_LOGS
1098+
debug(4, "Response body is disabled, returning... " + std::to_string(m_rules->m_secResponseBodyAccess));
1099+
#endif
1100+
return true;
1101+
}
1102+
10961103
std::set<std::string> &bi = \
10971104
m_rules->m_responseBodyTypeToBeInspected.m_value;
10981105
auto t = bi.find(m_variableResponseContentType.m_value);

Diff for: test/test-cases/regression/actions.json

+2
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
},
5656
"rules": [
5757
"SecRuleEngine On",
58+
"SecResponseBodyAccess On",
5859
"SecRule ARGS \"@contains test\" \"id:1,t:trim,deny\""
5960
]
6061
},
@@ -352,6 +353,7 @@
352353
},
353354
"rules": [
354355
"SecRuleEngine On",
356+
"SecResponseBodyAccess On",
355357
"SecRule ARGS \"@contains test\" \"id:1,phase:4,t:trim,status:500,deny\""
356358
]
357359
}

Diff for: test/test-cases/regression/config-calling_phases_by_name.json

+1
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
"SecRuleEngine On",
7878
"SecRule ARGS:key \"@contains other_value\" \"chain,pass,phase:response,id:28\"",
7979
"SecRule MATCHED_VAR \"@contains Aasdf\" \"\"",
80+
"SecResponseBodyAccess On",
8081
"SecRule MATCHED_VAR \"@contains other_value\" \"id:29,phase:response,pass\"",
8182
"SecRule MATCHED_VAR \"@contains other_value\" \"id:30,phase:response,pass\""
8283
]

Diff for: test/test-cases/regression/config-response_type.json

+3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
},
3636
"rules":[
3737
"SecRuleEngine On",
38+
"SecResponseBodyAccess On",
3839
"SecResponseBodyMimeType text\/plain text\/html text\/xml",
3940
"SecRule RESPONSE_BODY \"@contains RESPONSE_CONTENT_TYPE\" \"id:9,pass,t:trim,phase:4\""
4041
]
@@ -75,6 +76,7 @@
7576
},
7677
"rules":[
7778
"SecRuleEngine On",
79+
"SecResponseBodyAccess On",
7880
"SecResponseBodyMimeType application\/something",
7981
"SecRule RESPONSE_BODY \"@contains RESPONSE_CONTENT_TYPE\" \"id:9,pass,t:trim,phase:4\""
8082
]
@@ -115,6 +117,7 @@
115117
},
116118
"rules":[
117119
"SecRuleEngine On",
120+
"SecResponseBodyAccess On",
118121
"SecResponseBodyMimeType text\/plain text\/tml text\/xml",
119122
"SecResponseBodyMimeTypesClear",
120123
"SecRule RESPONSE_BODY \"@contains RESPONSE_CONTENT_TYPE\" \"id:9,pass,t:trim,phase:4\""

Diff for: test/test-cases/regression/variable-OUTBOUND_DATA_ERROR.json

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
},
3636
"rules":[
3737
"SecRuleEngine On",
38+
"SecResponseBodyAccess On",
3839
"SecRule OUTBOUND_DATA_ERROR \"@eq 1\" \"id:1,phase:4,pass,t:trim\""
3940
]
4041
},
@@ -108,6 +109,7 @@
108109
},
109110
"rules":[
110111
"SecRuleEngine On",
112+
"SecResponseBodyAccess On",
111113
"SecResponseBodyLimit 2",
112114
"SecRule OUTBOUND_DATA_ERROR \"@eq 1\" \"id:1,phase:4,pass,t:trim\""
113115
]

Diff for: test/test-cases/regression/variable-RESPONSE_BODY.json

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
},
2929
"rules":[
3030
"SecRuleEngine On",
31+
"SecResponseBodyAccess On",
3132
"SecRule RESPONSE_BODY \"@contains denystring\" \"id:1,phase:4,deny\""
3233
]
3334
}

Diff for: test/test-cases/regression/variable-RESPONSE_CONTENT_LENGTH.json

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
},
3737
"rules":[
3838
"SecRuleEngine On",
39+
"SecResponseBodyAccess On",
3940
"SecRule RESPONSE_CONTENT_LENGTH \"@contains test \" \"id:1,phase:4,pass,t:trim\""
4041
]
4142
}

Diff for: test/test-cases/regression/variable-TX.json

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
},
3838
"rules":[
3939
"SecRuleEngine On",
40+
"SecResponseBodyAccess On",
4041
"SecRequestBodyAccess On",
4142
"SecRule RESPONSE_BODY \"@rx ([0-9]+)\" \"id:1,phase:4,capture,id:105\"",
4243
"SecRule TX \"@rx ([A-z]+)\" \"phase:4,id:106\""

0 commit comments

Comments
 (0)