mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-30 03:34:29 +03:00
Refactoring: changes ModSecurityStringVar to transaction::Variable
Having the variables and collection in place before start to implement persistent storage.
This commit is contained in:
@@ -27,17 +27,17 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
Duration::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
std::string res;
|
||||
|
||||
double e = cpu_seconds() - assay->start;
|
||||
|
||||
res = std::to_string(e);
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("DURATION", std::string(res)));
|
||||
resl->push_back(new transaction::Variable("DURATION", std::string(res)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class Duration : public Variable {
|
||||
explicit Duration(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@ extern char **environ;
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
Env::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
std::map<std::string, std::string> envs;
|
||||
for (char **current = environ; *current; current++) {
|
||||
@@ -50,7 +50,7 @@ std::list<ModSecurityStringVar *> *
|
||||
|
||||
envs.insert(std::pair<std::string, std::string>("ENV:" + key, value));
|
||||
if ("env:" + key == name) {
|
||||
resl->push_back(new ModSecurityStringVar(name, value));
|
||||
resl->push_back(new transaction::Variable(name, value));
|
||||
return resl;
|
||||
}
|
||||
}
|
||||
@@ -60,7 +60,7 @@ std::list<ModSecurityStringVar *> *
|
||||
&& (x.first != name)) {
|
||||
continue;
|
||||
}
|
||||
resl->push_back(new ModSecurityStringVar(x.first, x.second));
|
||||
resl->push_back(new transaction::Variable(x.first, x.second));
|
||||
}
|
||||
|
||||
return resl;
|
||||
|
@@ -33,7 +33,7 @@ class Env : public Variable {
|
||||
explicit Env(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -26,12 +26,12 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
HighestSeverity::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("HIGHEST_SEVERITY",
|
||||
resl->push_back(new transaction::Variable("HIGHEST_SEVERITY",
|
||||
std::to_string(assay->highest_severity)));
|
||||
|
||||
return resl;
|
||||
|
@@ -33,7 +33,7 @@ class HighestSeverity : public Variable {
|
||||
explicit HighestSeverity(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -27,10 +27,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
ModsecBuild::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
std::ostringstream ss;
|
||||
ss << std::setw(2) << std::setfill('0') << MODSECURITY_MAJOR;
|
||||
@@ -38,7 +38,7 @@ std::list<ModSecurityStringVar *> *
|
||||
ss << std::setw(2) << std::setfill('0') << MODSECURITY_PATCHLEVEL;
|
||||
ss << std::setw(2) << std::setfill('0') << MODSECURITY_TAG_NUM;
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("MODSEC_BUILD", ss.str()));
|
||||
resl->push_back(new transaction::Variable("MODSEC_BUILD", ss.str()));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class ModsecBuild : public Variable {
|
||||
explicit ModsecBuild(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
Time::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
char tstr[200];
|
||||
struct tm timeinfo;
|
||||
@@ -48,7 +48,7 @@ std::list<ModSecurityStringVar *> *
|
||||
localtime_r(&timer, &timeinfo);
|
||||
strftime(tstr, 200, "%H:%M:%S", &timeinfo);
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME", std::string(tstr)));
|
||||
resl->push_back(new transaction::Variable("TIME", std::string(tstr)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -34,7 +34,7 @@ class Time : public Variable {
|
||||
explicit Time(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
TimeDay::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
char tstr[200];
|
||||
struct tm timeinfo;
|
||||
@@ -48,7 +48,7 @@ std::list<ModSecurityStringVar *> *
|
||||
localtime_r(&timer, &timeinfo);
|
||||
strftime(tstr, 200, "%d", &timeinfo);
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME_DAY", std::string(tstr)));
|
||||
resl->push_back(new transaction::Variable("TIME_DAY", std::string(tstr)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class TimeDay : public Variable {
|
||||
explicit TimeDay(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,12 +33,12 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
TimeEpoch::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME_EPOCH",
|
||||
resl->push_back(new transaction::Variable("TIME_EPOCH",
|
||||
std::to_string(std::time(nullptr))));
|
||||
|
||||
return resl;
|
||||
|
@@ -33,7 +33,7 @@ class TimeEpoch : public Variable {
|
||||
explicit TimeEpoch(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
TimeHour::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
char tstr[200];
|
||||
struct tm timeinfo;
|
||||
@@ -48,7 +48,7 @@ std::list<ModSecurityStringVar *> *
|
||||
localtime_r(&timer, &timeinfo);
|
||||
strftime(tstr, 200, "%H", &timeinfo);
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME_HOUR", std::string(tstr)));
|
||||
resl->push_back(new transaction::Variable("TIME_HOUR", std::string(tstr)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class TimeHour : public Variable {
|
||||
explicit TimeHour(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
TimeMin::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
char tstr[200];
|
||||
struct tm timeinfo;
|
||||
@@ -48,7 +48,7 @@ std::list<ModSecurityStringVar *> *
|
||||
localtime_r(&timer, &timeinfo);
|
||||
strftime(tstr, 200, "%M", &timeinfo);
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME_MIN", std::string(tstr)));
|
||||
resl->push_back(new transaction::Variable("TIME_MIN", std::string(tstr)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class TimeMin : public Variable {
|
||||
explicit TimeMin(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
TimeMon::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
char tstr[200];
|
||||
struct tm timeinfo;
|
||||
@@ -50,7 +50,7 @@ std::list<ModSecurityStringVar *> *
|
||||
int a = atoi(tstr);
|
||||
a--;
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME_MON", std::to_string(a)));
|
||||
resl->push_back(new transaction::Variable("TIME_MON", std::to_string(a)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class TimeMon : public Variable {
|
||||
explicit TimeMon(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
TimeSec::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
char tstr[200];
|
||||
struct tm timeinfo;
|
||||
@@ -48,7 +48,7 @@ std::list<ModSecurityStringVar *> *
|
||||
localtime_r(&timer, &timeinfo);
|
||||
strftime(tstr, 200, "%S", &timeinfo);
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME_SEC", std::string(tstr)));
|
||||
resl->push_back(new transaction::Variable("TIME_SEC", std::string(tstr)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class TimeSec : public Variable {
|
||||
explicit TimeSec(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
TimeWDay::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
char tstr[200];
|
||||
struct tm timeinfo;
|
||||
@@ -50,7 +50,7 @@ std::list<ModSecurityStringVar *> *
|
||||
int a = atoi(tstr);
|
||||
a--;
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME_WDAY", std::to_string(a)));
|
||||
resl->push_back(new transaction::Variable("TIME_WDAY", std::to_string(a)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class TimeWDay : public Variable {
|
||||
explicit TimeWDay(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,10 +33,10 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
TimeYear::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
char tstr[200];
|
||||
struct tm timeinfo;
|
||||
@@ -48,7 +48,7 @@ std::list<ModSecurityStringVar *> *
|
||||
localtime_r(&timer, &timeinfo);
|
||||
strftime(tstr, 200, "%Y", &timeinfo);
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TIME_YEAR", std::string(tstr)));
|
||||
resl->push_back(new transaction::Variable("TIME_YEAR", std::string(tstr)));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class TimeYear : public Variable {
|
||||
explicit TimeYear(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -33,12 +33,12 @@
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
Tx::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *resl =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *resl =
|
||||
new std::list<transaction::Variable *>();
|
||||
|
||||
resl->push_back(new ModSecurityStringVar("TX:0", "teste"));
|
||||
resl->push_back(new transaction::Variable("TX:0", "teste"));
|
||||
|
||||
return resl;
|
||||
}
|
||||
|
@@ -34,7 +34,7 @@ class Tx : public Variable {
|
||||
explicit Tx(std::string _name)
|
||||
: Variable(_name) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
};
|
||||
|
||||
|
@@ -28,10 +28,10 @@ using ModSecurity::Variables::Variations::Exclusion;
|
||||
namespace ModSecurity {
|
||||
namespace Variables {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
Variable::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *l =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *l =
|
||||
new std::list<transaction::Variable *>();
|
||||
assay->resolve_variable(this->name, l);
|
||||
return l;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class Variable {
|
||||
: name(_name) { }
|
||||
|
||||
static std::string to_s(std::vector<Variable *> *variables);
|
||||
virtual std::list<ModSecurityStringVar *> *
|
||||
virtual std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay);
|
||||
std::string name;
|
||||
};
|
||||
|
@@ -28,11 +28,11 @@ namespace ModSecurity {
|
||||
namespace Variables {
|
||||
namespace Variations {
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
Count::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *reslIn;
|
||||
std::list<ModSecurityStringVar *> *reslOut =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *reslIn;
|
||||
std::list<transaction::Variable *> *reslOut =
|
||||
new std::list<transaction::Variable *>();
|
||||
int count = 0;
|
||||
|
||||
reslIn = var->evaluate(assay);
|
||||
@@ -43,7 +43,7 @@ std::list<ModSecurityStringVar *> *
|
||||
|
||||
std::string res = std::to_string(count);
|
||||
|
||||
reslOut->push_back(new ModSecurityStringVar(std::string(var->name),
|
||||
reslOut->push_back(new transaction::Variable(std::string(var->name),
|
||||
std::string(res)));
|
||||
|
||||
return reslOut;
|
||||
|
@@ -35,7 +35,7 @@ class Count : public Variable {
|
||||
: Variable("count(" + v->name + ")"),
|
||||
var(v) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
|
||||
Variable *var;
|
||||
|
@@ -29,10 +29,10 @@ namespace Variables {
|
||||
namespace Variations {
|
||||
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
Exclusion::evaluate(Assay *assay) {
|
||||
std::list<ModSecurityStringVar *> *l =
|
||||
new std::list<ModSecurityStringVar *>();
|
||||
std::list<transaction::Variable *> *l =
|
||||
new std::list<transaction::Variable *>();
|
||||
assay->resolve_variable(this->name, l);
|
||||
return l;
|
||||
}
|
||||
|
@@ -36,7 +36,7 @@ class Exclusion : public Variable {
|
||||
: Variable(v->name),
|
||||
var(v) { }
|
||||
|
||||
std::list<ModSecurityStringVar *> *
|
||||
std::list<transaction::Variable *> *
|
||||
evaluate(Assay *assay) override;
|
||||
|
||||
Variable *var;
|
||||
|
Reference in New Issue
Block a user