Adds support to setrsc action

This commit is contained in:
Felipe Zimmerle
2017-06-09 10:47:24 -03:00
parent 616a95bfe0
commit 9cb3f23b50
10 changed files with 4568 additions and 4279 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -80,6 +80,7 @@ class Driver;
#include "src/actions/phase.h"
#include "src/actions/rev.h"
#include "src/actions/rule_id.h"
#include "src/actions/set_rsc.h"
#include "src/actions/set_sid.h"
#include "src/actions/set_uid.h"
#include "src/actions/set_var.h"
@@ -366,7 +367,7 @@ using modsecurity::operators::Operator;
#line 370 "seclang-parser.hh" // lalr1.cc:377
#line 371 "seclang-parser.hh" // lalr1.cc:377
# include <cassert>
# include <cstdlib> // std::abort
@@ -443,7 +444,7 @@ using modsecurity::operators::Operator;
namespace yy {
#line 447 "seclang-parser.hh" // lalr1.cc:377
#line 448 "seclang-parser.hh" // lalr1.cc:377
@@ -654,7 +655,7 @@ namespace yy {
// "SanatiseRequestHeader"
// "SanatiseResponseHeader"
// "SetEnv"
// "SetSrc"
// "SetRsc"
// "SetSid"
// "SetUID"
// "Severity"
@@ -2752,7 +2753,7 @@ namespace yy {
case 134: // "SanatiseRequestHeader"
case 135: // "SanatiseResponseHeader"
case 136: // "SetEnv"
case 137: // "SetSrc"
case 137: // "SetRsc"
case 138: // "SetSid"
case 139: // "SetUID"
case 140: // "Severity"
@@ -2990,7 +2991,7 @@ namespace yy {
case 134: // "SanatiseRequestHeader"
case 135: // "SanatiseResponseHeader"
case 136: // "SetEnv"
case 137: // "SetSrc"
case 137: // "SetRsc"
case 138: // "SetSid"
case 139: // "SetUID"
case 140: // "Severity"
@@ -3294,7 +3295,7 @@ namespace yy {
case 134: // "SanatiseRequestHeader"
case 135: // "SanatiseResponseHeader"
case 136: // "SetEnv"
case 137: // "SetSrc"
case 137: // "SetRsc"
case 138: // "SetSid"
case 139: // "SetUID"
case 140: // "Severity"
@@ -3538,7 +3539,7 @@ namespace yy {
case 134: // "SanatiseRequestHeader"
case 135: // "SanatiseResponseHeader"
case 136: // "SetEnv"
case 137: // "SetSrc"
case 137: // "SetRsc"
case 138: // "SetSid"
case 139: // "SetUID"
case 140: // "Severity"
@@ -5522,7 +5523,7 @@ namespace yy {
} // yy
#line 5526 "seclang-parser.hh" // lalr1.cc:377
#line 5527 "seclang-parser.hh" // lalr1.cc:377

View File

@@ -46,6 +46,7 @@ class Driver;
#include "src/actions/phase.h"
#include "src/actions/rev.h"
#include "src/actions/rule_id.h"
#include "src/actions/set_rsc.h"
#include "src/actions/set_sid.h"
#include "src/actions/set_uid.h"
#include "src/actions/set_var.h"
@@ -487,7 +488,7 @@ using modsecurity::operators::Operator;
ACTION_SANATISE_REQUEST_HEADER "SanatiseRequestHeader"
ACTION_SANATISE_RESPONSE_HEADER "SanatiseResponseHeader"
ACTION_SETENV "SetEnv"
ACTION_SETRSC "SetSrc"
ACTION_SETRSC "SetRsc"
ACTION_SETSID "SetSid"
ACTION_SETUID "SetUID"
ACTION_SEVERITY "Severity"
@@ -2182,7 +2183,7 @@ act:
}
| ACTION_SETRSC
{
ACTION_NOT_SUPPORTED("SetRSC", @0);
ACTION_CONTAINER($$, new actions::SetRSC($1));
}
| ACTION_SETSID
{

File diff suppressed because it is too large Load Diff

View File

@@ -398,7 +398,10 @@ EQUALS_MINUS (?i:=\-)
{ACTION_SANATISE_MATCHED_BYTES} { return p::make_ACTION_SANATISE_MATCHED_BYTES(yytext, *driver.loc.back()); }
{ACTION_SANATISE_REQUEST_HEADER} { return p::make_ACTION_SANATISE_REQUEST_HEADER(yytext, *driver.loc.back()); }
{ACTION_SANATISE_RESPONSE_HEADER} { return p::make_ACTION_SANATISE_RESPONSE_HEADER(yytext, *driver.loc.back()); }
{ACTION_SETRSC} { return p::make_ACTION_SETRSC(yytext, *driver.loc.back()); }
{ACTION_SETRSC}:{VAR_FREE_TEXT_SPACE_COMMA} { return p::make_ACTION_SETRSC(yytext, *driver.loc.back()); }
{ACTION_SETRSC}:'{VAR_FREE_TEXT_QUOTE}' { return p::make_ACTION_SETRSC(yytext, *driver.loc.back()); }
{ACTION_SETRSC}:{VAR_FREE_TEXT_SPACE_COMMA} { return p::make_ACTION_SETRSC(yytext, *driver.loc.back()); }
{ACTION_STATUS} { return p::make_ACTION_STATUS(yytext, *driver.loc.back()); }
{ACTION_ACCURACY}:'{FREE_TEXT_QUOTE}' { return p::make_ACTION_ACCURACY(yytext, *driver.loc.back()); }
{ACTION_ACCURACY}:{FREE_TEXT_QUOTE} { return p::make_ACTION_ACCURACY(yytext, *driver.loc.back()); }
@@ -509,6 +512,10 @@ EQUALS_MINUS (?i:=\-)
{VARIABLE_SESSION}(\:{DICT_ELEMENT_TWO})? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_SESSION}(\.[\']{DICT_ELEMENT_TWO}[\'])? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_SESSION}(\.{DICT_ELEMENT_TWO})? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_RESOURCE}(\:[\']{DICT_ELEMENT_TWO}[\'])? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_RESOURCE}(\:{DICT_ELEMENT_TWO})? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_RESOURCE}(\.[\']{DICT_ELEMENT_TWO}[\'])? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_RESOURCE}(\.{DICT_ELEMENT_TWO})? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_IP}(\:[\']{DICT_ELEMENT_TWO}[\'])? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_IP}(\:{DICT_ELEMENT_TWO})? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }
{VARIABLE_IP}(\.[\']{DICT_ELEMENT_TWO}[\'])? { BEGIN(SETVAR_ACTION_WAITING_OPERATION); return p::make_VARIABLE(yytext, *driver.loc.back()); }