mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-30 11:44:32 +03:00
Refactoring: Splits Rule into Rule and RuleWithActions
This commit is contained in:
@@ -39,7 +39,7 @@ bool Accuracy::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Accuracy::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Accuracy::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
rule->m_accuracy = m_accuracy;
|
||||
return true;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class Accuracy : public Action {
|
||||
: Action(action, ConfigurationKind),
|
||||
m_accuracy(0) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -51,7 +51,7 @@ std::string Action::evaluate(const std::string &value,
|
||||
}
|
||||
|
||||
|
||||
bool Action::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Action::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -27,7 +27,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool AuditLog::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool AuditLog::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
rm->m_noAuditLog = false;
|
||||
ms_dbg_a(transaction, 9, "Saving transaction to logs");
|
||||
|
@@ -35,7 +35,7 @@ class AuditLog : public Action {
|
||||
explicit AuditLog(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
};
|
||||
|
||||
|
@@ -29,7 +29,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool Block::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Block::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
ms_dbg_a(transaction, 8, "Marking request as disruptive.");
|
||||
|
||||
|
@@ -35,7 +35,7 @@ class Block : public Action {
|
||||
public:
|
||||
explicit Block(const std::string &action) : Action(action) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
};
|
||||
|
||||
|
@@ -32,7 +32,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool Capture::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Capture::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -31,7 +31,7 @@ class Capture : public Action {
|
||||
explicit Capture(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -25,7 +25,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool Chain::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Chain::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
rule->setChained(true);
|
||||
return true;
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ class Chain : public Action {
|
||||
explicit Chain(const std::string &action)
|
||||
: Action(action, ConfigurationKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
};
|
||||
|
||||
} // namespace actions
|
||||
|
@@ -38,7 +38,7 @@ bool AuditLogParts::init(std::string *error) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AuditLogParts::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool AuditLogParts::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
transaction->m_auditLogModifier.push_back(
|
||||
std::make_pair(mPartsAction, mParts));
|
||||
return true;
|
||||
|
@@ -33,7 +33,7 @@ class AuditLogParts : public Action {
|
||||
mPartsAction(0),
|
||||
mParts("") { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
protected:
|
||||
|
@@ -42,7 +42,7 @@ bool RequestBodyAccess::init(std::string *error) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RequestBodyAccess::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool RequestBodyAccess::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
if (m_request_body_access) {
|
||||
transaction->m_requestBodyAccess = RulesSetProperties::TrueConfigBoolean;
|
||||
} else {
|
||||
|
@@ -34,7 +34,7 @@ class RequestBodyAccess : public Action {
|
||||
m_request_body_access(false) { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
bool m_request_body_access;
|
||||
};
|
||||
|
@@ -25,7 +25,7 @@ namespace actions {
|
||||
namespace ctl {
|
||||
|
||||
|
||||
bool RequestBodyProcessorJSON::evaluate(Rule *rule,
|
||||
bool RequestBodyProcessorJSON::evaluate(RuleWithActions *rule,
|
||||
Transaction *transaction) {
|
||||
transaction->m_requestBodyProcessor = Transaction::JSONRequestBody;
|
||||
transaction->m_variableReqbodyProcessor.set("JSON",
|
||||
|
@@ -31,7 +31,7 @@ class RequestBodyProcessorJSON : public Action {
|
||||
explicit RequestBodyProcessorJSON(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -25,7 +25,7 @@ namespace actions {
|
||||
namespace ctl {
|
||||
|
||||
|
||||
bool RequestBodyProcessorURLENCODED::evaluate(Rule *rule,
|
||||
bool RequestBodyProcessorURLENCODED::evaluate(RuleWithActions *rule,
|
||||
Transaction *transaction) {
|
||||
transaction->m_requestBodyType = Transaction::WWWFormUrlEncoded;
|
||||
transaction->m_variableReqbodyProcessor.set("URLENCODED",
|
||||
|
@@ -31,7 +31,7 @@ class RequestBodyProcessorURLENCODED : public Action {
|
||||
explicit RequestBodyProcessorURLENCODED(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -25,7 +25,7 @@ namespace actions {
|
||||
namespace ctl {
|
||||
|
||||
|
||||
bool RequestBodyProcessorXML::evaluate(Rule *rule,
|
||||
bool RequestBodyProcessorXML::evaluate(RuleWithActions *rule,
|
||||
Transaction *transaction) {
|
||||
transaction->m_requestBodyProcessor = Transaction::XMLRequestBody;
|
||||
transaction->m_variableReqbodyProcessor.set("XML",
|
||||
|
@@ -31,7 +31,7 @@ class RequestBodyProcessorXML : public Action {
|
||||
explicit RequestBodyProcessorXML(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -45,7 +45,7 @@ bool RuleEngine::init(std::string *error) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RuleEngine::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool RuleEngine::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
std::stringstream a;
|
||||
a << "Setting SecRuleEngine to ";
|
||||
a << modsecurity::RulesSetProperties::ruleEngineStateString(m_ruleEngine);
|
||||
|
@@ -35,7 +35,7 @@ class RuleEngine : public Action {
|
||||
m_ruleEngine(RulesSetProperties::PropertyNotSetRuleEngine) { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
RulesSetProperties::RuleEngine m_ruleEngine;
|
||||
};
|
||||
|
@@ -83,7 +83,7 @@ bool RuleRemoveById::init(std::string *error) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool RuleRemoveById::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool RuleRemoveById::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
for (auto &i : m_ids) {
|
||||
transaction->m_ruleRemoveById.push_back(i);
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class RuleRemoveById : public Action {
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
std::list<std::pair<int, int> > m_ranges;
|
||||
std::list<int> m_ids;
|
||||
|
@@ -32,7 +32,7 @@ bool RuleRemoveByTag::init(std::string *error) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RuleRemoveByTag::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool RuleRemoveByTag::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
transaction->m_ruleRemoveByTag.push_back(m_tag);
|
||||
return true;
|
||||
}
|
||||
|
@@ -34,7 +34,7 @@ class RuleRemoveByTag : public Action {
|
||||
m_tag("") { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
std::string m_tag;
|
||||
};
|
||||
|
@@ -51,7 +51,7 @@ bool RuleRemoveTargetById::init(std::string *error) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RuleRemoveTargetById::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool RuleRemoveTargetById::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
transaction->m_ruleRemoveTargetById.push_back(
|
||||
std::make_pair(m_id, m_target));
|
||||
return true;
|
||||
|
@@ -35,7 +35,7 @@ class RuleRemoveTargetById : public Action {
|
||||
m_target("") { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
int m_id;
|
||||
std::string m_target;
|
||||
|
@@ -44,7 +44,7 @@ bool RuleRemoveTargetByTag::init(std::string *error) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RuleRemoveTargetByTag::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool RuleRemoveTargetByTag::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
transaction->m_ruleRemoveTargetByTag.push_back(
|
||||
std::make_pair(m_tag, m_target));
|
||||
return true;
|
||||
|
@@ -33,7 +33,7 @@ class RuleRemoveTargetByTag : public Action {
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
std::string m_tag;
|
||||
std::string m_target;
|
||||
|
@@ -38,7 +38,7 @@ bool Status::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Status::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Status::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
transaction->m_it.status = m_status;
|
||||
return true;
|
||||
|
@@ -37,7 +37,7 @@ class Status : public Action {
|
||||
m_status(0) { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
|
||||
int m_status;
|
||||
|
@@ -49,7 +49,7 @@ bool Allow::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Allow::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Allow::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
ms_dbg_a(transaction, 4, "Dropping the evaluation of upcoming rules " \
|
||||
"in favor of an `allow' action of type: " \
|
||||
+ allowTypeToName(m_allowType));
|
||||
|
@@ -59,7 +59,7 @@ class Allow : public Action {
|
||||
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool isDisruptive() override { return true; }
|
||||
|
||||
AllowType m_allowType;
|
||||
|
@@ -28,7 +28,7 @@ namespace actions {
|
||||
namespace disruptive {
|
||||
|
||||
|
||||
bool Deny::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Deny::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
ms_dbg_a(transaction, 8, "Running action deny");
|
||||
|
||||
|
@@ -33,7 +33,7 @@ class Deny : public Action {
|
||||
public:
|
||||
explicit Deny(const std::string &action) : Action(action) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
bool isDisruptive() override { return true; }
|
||||
};
|
||||
|
@@ -32,7 +32,7 @@ namespace actions {
|
||||
namespace disruptive {
|
||||
|
||||
|
||||
bool Drop::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Drop::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
ms_dbg_a(transaction, 8, "Running action drop " \
|
||||
"[executing deny instead of drop.]");
|
||||
|
@@ -32,7 +32,7 @@ class Drop : public Action {
|
||||
public:
|
||||
explicit Drop(const std::string &action) : Action(action) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
bool isDisruptive() override { return true; }
|
||||
};
|
||||
|
@@ -29,7 +29,7 @@ namespace actions {
|
||||
namespace disruptive {
|
||||
|
||||
|
||||
bool Pass::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Pass::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
intervention::free(&transaction->m_it);
|
||||
intervention::reset(&transaction->m_it);
|
||||
|
@@ -31,7 +31,7 @@ class Pass : public Action {
|
||||
public:
|
||||
explicit Pass(const std::string &action) : Action(action) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
bool isDisruptive() override { return true; }
|
||||
};
|
||||
|
@@ -34,7 +34,7 @@ bool Redirect::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Redirect::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Redirect::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
std::string m_urlExpanded(m_string->evaluate(transaction));
|
||||
/* if it was changed before, lets keep it. */
|
||||
|
@@ -46,7 +46,7 @@ class Redirect : public Action {
|
||||
m_status(0),
|
||||
m_string(std::move(z)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
bool init(std::string *error) override;
|
||||
bool isDisruptive() override { return true; }
|
||||
|
@@ -49,7 +49,7 @@ bool Exec::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Exec::evaluate(Rule *rule, Transaction *t) {
|
||||
bool Exec::evaluate(RuleWithActions *rule, Transaction *t) {
|
||||
ms_dbg_a(t, 8, "Running script... " + m_script);
|
||||
m_lua.run(t);
|
||||
return true;
|
||||
|
@@ -36,7 +36,7 @@ class Exec : public Action {
|
||||
|
||||
~Exec() { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -54,7 +54,7 @@ bool InitCol::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool InitCol::evaluate(Rule *rule, Transaction *t) {
|
||||
bool InitCol::evaluate(RuleWithActions *rule, Transaction *t) {
|
||||
std::string collectionName(m_string->evaluate(t));
|
||||
|
||||
if (m_collection_key == "ip") {
|
||||
|
@@ -38,7 +38,7 @@ class InitCol : public Action {
|
||||
: Action(action, RunTimeOnlyIfMatchKind),
|
||||
m_string(std::move(z)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
private:
|
||||
std::string m_collection_key;
|
||||
|
@@ -28,7 +28,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool Log::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Log::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
ms_dbg_a(transaction, 9, "Saving transaction to logs");
|
||||
rm->m_saveMessage = true;
|
||||
|
@@ -33,7 +33,7 @@ class Log : public Action {
|
||||
explicit Log(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
};
|
||||
|
||||
|
@@ -29,7 +29,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool LogData::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool LogData::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
rm->m_data = data(transaction);
|
||||
|
||||
|
@@ -39,7 +39,7 @@ class LogData : public Action {
|
||||
: Action("logdata", RunTimeOnlyIfMatchKind),
|
||||
m_string(std::move(z)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
|
||||
std::string data(Transaction *Transaction);
|
||||
|
@@ -39,7 +39,7 @@ bool Maturity::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Maturity::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Maturity::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
rule->m_maturity = m_maturity;
|
||||
return true;
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ class Maturity : public Action {
|
||||
: Action(action, ConfigurationKind),
|
||||
m_maturity(0) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -46,7 +46,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool Msg::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Msg::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
std::string msg = data(transaction);
|
||||
rm->m_message = msg;
|
||||
|
@@ -40,7 +40,7 @@ class Msg : public Action {
|
||||
: Action("msg", RunTimeOnlyIfMatchKind),
|
||||
m_string(std::move(z)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
|
||||
std::string data(Transaction *Transaction);
|
||||
|
@@ -25,7 +25,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool MultiMatch::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool MultiMatch::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -35,7 +35,7 @@ class MultiMatch : public Action {
|
||||
explicit MultiMatch(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
};
|
||||
|
||||
} // namespace actions
|
||||
|
@@ -26,7 +26,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool NoAuditLog::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool NoAuditLog::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
rm->m_noAuditLog = true;
|
||||
rm->m_saveMessage = false;
|
||||
|
@@ -35,7 +35,7 @@ class NoAuditLog : public Action {
|
||||
explicit NoAuditLog(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
};
|
||||
|
||||
|
@@ -29,7 +29,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool NoLog::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool NoLog::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
rm->m_saveMessage = false;
|
||||
return true;
|
||||
|
@@ -33,7 +33,7 @@ class NoLog : public Action {
|
||||
explicit NoLog(const std::string &action)
|
||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
};
|
||||
|
||||
|
@@ -72,7 +72,7 @@ bool Phase::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Phase::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Phase::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
rule->setPhase(m_phase);
|
||||
return true;
|
||||
}
|
||||
|
@@ -37,7 +37,7 @@ class Phase : public Action {
|
||||
m_secRulesPhase(0) { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
int m_phase;
|
||||
int m_secRulesPhase;
|
||||
|
@@ -33,7 +33,7 @@ bool Rev::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Rev::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Rev::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
rule->m_rev = m_rev;
|
||||
return true;
|
||||
}
|
||||
|
@@ -31,7 +31,7 @@ class Rev : public Action {
|
||||
public:
|
||||
explicit Rev(const std::string &action) : Action(action, ConfigurationKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -48,7 +48,7 @@ bool RuleId::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool RuleId::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool RuleId::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
rule->m_ruleId = m_ruleId;
|
||||
return true;
|
||||
}
|
||||
|
@@ -37,7 +37,7 @@ class RuleId : public Action {
|
||||
m_ruleId(0) { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
private:
|
||||
double m_ruleId;
|
||||
|
@@ -31,7 +31,7 @@ bool SetENV::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool SetENV::evaluate(Rule *rule, Transaction *t) {
|
||||
bool SetENV::evaluate(RuleWithActions *rule, Transaction *t) {
|
||||
std::string colNameExpanded(m_string->evaluate(t));
|
||||
|
||||
ms_dbg_a(t, 8, "Setting envoriment variable: "
|
||||
|
@@ -39,7 +39,7 @@ class SetENV : public Action {
|
||||
: Action("setenv", RunTimeOnlyIfMatchKind),
|
||||
m_string(std::move(z)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -31,7 +31,7 @@ bool SetRSC::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool SetRSC::evaluate(Rule *rule, Transaction *t) {
|
||||
bool SetRSC::evaluate(RuleWithActions *rule, Transaction *t) {
|
||||
std::string colNameExpanded(m_string->evaluate(t));
|
||||
ms_dbg_a(t, 8, "RESOURCE initiated with value: \'"
|
||||
+ colNameExpanded + "\'.");
|
||||
|
@@ -39,7 +39,7 @@ class SetRSC : public Action {
|
||||
: Action("setsrc", RunTimeOnlyIfMatchKind),
|
||||
m_string(std::move(z)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -31,7 +31,7 @@ bool SetSID::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool SetSID::evaluate(Rule *rule, Transaction *t) {
|
||||
bool SetSID::evaluate(RuleWithActions *rule, Transaction *t) {
|
||||
std::string colNameExpanded(m_string->evaluate(t));
|
||||
ms_dbg_a(t, 8, "Session ID initiated with value: \'"
|
||||
+ colNameExpanded + "\'.");
|
||||
|
@@ -39,7 +39,7 @@ class SetSID : public Action {
|
||||
: Action("setsid", RunTimeOnlyIfMatchKind),
|
||||
m_string(std::move(z)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -31,7 +31,7 @@ bool SetUID::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool SetUID::evaluate(Rule *rule, Transaction *t) {
|
||||
bool SetUID::evaluate(RuleWithActions *rule, Transaction *t) {
|
||||
std::string colNameExpanded(m_string->evaluate(t));
|
||||
ms_dbg_a(t, 8, "User collection initiated with value: \'"
|
||||
+ colNameExpanded + "\'.");
|
||||
|
@@ -39,7 +39,7 @@ class SetUID : public Action {
|
||||
: Action("setuid", RunTimeOnlyIfMatchKind),
|
||||
m_string(std::move(z)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -40,7 +40,7 @@ bool SetVar::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool SetVar::evaluate(Rule *rule, Transaction *t) {
|
||||
bool SetVar::evaluate(RuleWithActions *rule, Transaction *t) {
|
||||
std::string targetValue;
|
||||
std::string resolvedPre;
|
||||
|
||||
@@ -112,7 +112,8 @@ bool SetVar::evaluate(Rule *rule, Transaction *t) {
|
||||
|
||||
try {
|
||||
std::vector<const VariableValue *> l;
|
||||
m_variable->evaluate(t, rule, &l);
|
||||
Rule *rr = dynamic_cast<Rule *>(rule);
|
||||
m_variable->evaluate(t, rr, &l);
|
||||
if (l.size() == 0) {
|
||||
value = 0;
|
||||
} else {
|
||||
|
@@ -58,7 +58,7 @@ class SetVar : public Action {
|
||||
m_operation(operation),
|
||||
m_variable(std::move(variable)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
private:
|
||||
|
@@ -71,7 +71,7 @@ bool Severity::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Severity::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Severity::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
ms_dbg_a(transaction, 9, "This rule severity is: " + \
|
||||
std::to_string(this->m_severity) + " current transaction is: " + \
|
||||
|
@@ -35,7 +35,7 @@ class Severity : public Action {
|
||||
: Action(action),
|
||||
m_severity(0) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
bool init(std::string *error) override;
|
||||
|
||||
|
@@ -38,7 +38,7 @@ bool Skip::init(std::string *error) {
|
||||
}
|
||||
|
||||
|
||||
bool Skip::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Skip::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
ms_dbg_a(transaction, 5, "Skipping the next " + \
|
||||
std::to_string(m_skip_next) + " rules.");
|
||||
|
||||
|
@@ -34,7 +34,7 @@ class Skip : public Action {
|
||||
m_skip_next(0) { }
|
||||
|
||||
bool init(std::string *error) override;
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
int m_skip_next;
|
||||
};
|
||||
|
@@ -27,7 +27,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool SkipAfter::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool SkipAfter::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
ms_dbg_a(transaction, 5, "Setting skipAfter for: " + *m_skipName);
|
||||
transaction->addMarker(m_skipName);
|
||||
return true;
|
||||
|
@@ -34,7 +34,7 @@ class SkipAfter : public Action {
|
||||
: Action(action, RunTimeOnlyIfMatchKind),
|
||||
m_skipName(std::make_shared<std::string>(m_parser_payload)) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
private:
|
||||
std::shared_ptr<std::string> m_skipName;
|
||||
};
|
||||
|
@@ -56,7 +56,7 @@ std::string Tag::getName(Transaction *transaction) {
|
||||
}
|
||||
|
||||
|
||||
bool Tag::evaluate(Rule *rule, Transaction *transaction,
|
||||
bool Tag::evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) {
|
||||
std::string tag = getName(transaction);
|
||||
ms_dbg_a(transaction, 9, "Rule tag: " + tag);
|
||||
|
@@ -38,7 +38,7 @@ class Tag : public Action {
|
||||
|
||||
std::string getName(Transaction *transaction);
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction,
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction,
|
||||
std::shared_ptr<RuleMessage> rm) override;
|
||||
|
||||
protected:
|
||||
|
@@ -27,7 +27,7 @@ namespace modsecurity {
|
||||
namespace actions {
|
||||
|
||||
|
||||
bool Ver::evaluate(Rule *rule, Transaction *transaction) {
|
||||
bool Ver::evaluate(RuleWithActions *rule, Transaction *transaction) {
|
||||
rule->m_ver = m_parser_payload;
|
||||
return true;
|
||||
}
|
||||
|
@@ -31,7 +31,7 @@ class Ver : public Action {
|
||||
public:
|
||||
explicit Ver(const std::string &action) : Action(action, ConfigurationKind) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override;
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override;
|
||||
|
||||
private:
|
||||
std::string m_ver;
|
||||
|
@@ -31,7 +31,7 @@ class XmlNS : public Action {
|
||||
public:
|
||||
explicit XmlNS(const std::string &action) : Action(action) { }
|
||||
|
||||
bool evaluate(Rule *rule, Transaction *transaction) override {
|
||||
bool evaluate(RuleWithActions *rule, Transaction *transaction) override {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user