mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-13 21:36:00 +03:00
Parser: adds support to SecRequestBodyInMemoryLimit
This commit is contained in:
parent
2d56aa521b
commit
0b225f0239
@ -46,6 +46,7 @@ class RulesProperties {
|
||||
remoteRulesActionOnFailed(AbortOnFailedRemoteRulesAction),
|
||||
requestBodyLimit(0),
|
||||
requestBodyNoFilesLimit(0),
|
||||
requestBodyInMemoryLimit(0),
|
||||
secRequestBodyAccess(false),
|
||||
secResponseBodyAccess(false),
|
||||
requestBodyLimitAction(ProcessPartialBodyLimitAction),
|
||||
@ -64,6 +65,7 @@ class RulesProperties {
|
||||
requestBodyLimit(0),
|
||||
requestBodyLimitAction(ProcessPartialBodyLimitAction),
|
||||
requestBodyNoFilesLimit(0),
|
||||
requestBodyInMemoryLimit(0),
|
||||
responseBodyLimit(0),
|
||||
responseBodyLimitAction(ProcessPartialBodyLimitAction),
|
||||
secRuleEngine(DetectionOnlyRuleEngine) { }
|
||||
@ -159,6 +161,7 @@ class RulesProperties {
|
||||
|
||||
RuleEngine secRuleEngine;
|
||||
double requestBodyNoFilesLimit;
|
||||
double requestBodyInMemoryLimit;
|
||||
double requestBodyLimit;
|
||||
double responseBodyLimit;
|
||||
BodyLimitAction requestBodyLimitAction;
|
||||
|
@ -130,6 +130,7 @@ using ModSecurity::Variables::Variable;
|
||||
%token <std::string> DIRECTIVE
|
||||
%token <std::string> CONFIG_DIR_REQ_BODY_LIMIT
|
||||
%token <std::string> CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT
|
||||
%token <std::string> CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT
|
||||
%token <std::string> CONFIG_DIR_RES_BODY_LIMIT
|
||||
%token <std::string> CONFIG_DIR_REQ_BODY_LIMIT_ACTION
|
||||
%token <std::string> CONFIG_DIR_RES_BODY_LIMIT_ACTION
|
||||
@ -371,6 +372,10 @@ expression:
|
||||
{
|
||||
driver.requestBodyNoFilesLimit = atoi($1.c_str());
|
||||
}
|
||||
| CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT
|
||||
{
|
||||
driver.requestBodyInMemoryLimit = atoi($1.c_str());
|
||||
}
|
||||
| CONFIG_DIR_RES_BODY_LIMIT
|
||||
{
|
||||
driver.responseBodyLimit = atoi($1.c_str());
|
||||
|
@ -33,7 +33,9 @@ ACTION_CTL_BDY_XML ctl:requestBodyProcessor=XML
|
||||
ACTION_CTL_BDY_JSON ctl:requestBodyProcessor=JSON
|
||||
DIRECTIVE SecRule
|
||||
|
||||
CONFIG_DIRECTIVE SecRequestBodyInMemoryLimit|SecPcreMatchLimitRecursion|SecPcreMatchLimit|SecResponseBodyMimeType|SecTmpDir|SecDataDir|SecArgumentSeparator|SecCookieFormat|SecStatusEngine
|
||||
CONFIG_DIRECTIVE SecPcreMatchLimitRecursion|SecPcreMatchLimit|SecResponseBodyMimeType|SecTmpDir|SecDataDir|SecArgumentSeparator|SecCookieFormat|SecStatusEngine
|
||||
|
||||
CONFIG_DIR_REQ_BOYD_IN_MEMORY_LIMIT (?i:SecRequestBodyInMemoryLimit)
|
||||
|
||||
CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT (?i:SecRequestBodyNoFilesLimit)
|
||||
CONFIG_DIR_REQ_BODY_LIMIT (?i:SecRequestBodyLimit)
|
||||
@ -179,7 +181,8 @@ FREE_TEXT_NEW_LINE [^\"|\n]+
|
||||
%{ /* Request body limit */ %}
|
||||
{CONFIG_DIR_REQ_BODY_LIMIT}[ ]{CONFIG_VALUE_NUMBER} { return yy::seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); }
|
||||
{CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT}[ ]{CONFIG_VALUE_NUMBER} { return yy::seclang_parser::make_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); }
|
||||
{CONFIG_DIR_REQ_BODY_LIMIT_ACTION} { return yy::seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION(yytext, *driver.loc.back()); }
|
||||
{CONFIG_DIR_REQ_BODY_LIMIT_ACTION}[ ]{CONFIG_VALUE_NUMBER} { return yy::seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION(strchr(yytext, ' ') + 1, *driver.loc.back()); }
|
||||
{CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT}[ ]{CONFIG_VALUE_NUMBER}{ return yy::seclang_parser::make_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); }
|
||||
%{ /* Reponse body limit */ %}
|
||||
{CONFIG_DIR_RES_BODY_LIMIT}[ ]{CONFIG_VALUE_NUMBER} { return yy::seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); }
|
||||
{CONFIG_DIR_RES_BODY_LIMIT_ACTION} { return yy::seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT_ACTION(yytext, *driver.loc.back()); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user