From 888b9622c76035b67d50a0018d299df55215e0a9 Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Wed, 8 Jul 2015 18:54:44 -0300 Subject: [PATCH] Adds random id to each assay --- headers/modsecurity/assay.h | 1 + src/assay.cc | 2 ++ src/modsecurity.cc | 9 +++------ src/utils.cc | 22 ++++++++++++++++++++++ src/utils.h | 2 ++ 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/headers/modsecurity/assay.h b/headers/modsecurity/assay.h index 7bfdb073..e2bb4467 100644 --- a/headers/modsecurity/assay.h +++ b/headers/modsecurity/assay.h @@ -135,6 +135,7 @@ class Assay { int http_code_returned; private: + std::string id; std::ofstream myfile; Rules *m_rules; const char *m_clientIpAddress; diff --git a/src/assay.cc b/src/assay.cc index 6e88d839..a655780a 100644 --- a/src/assay.cc +++ b/src/assay.cc @@ -85,6 +85,8 @@ Assay::Assay(ModSecurity *ms, Rules *rules) do_not_save_in_auditlog(false), m_timeStamp(std::time(NULL)), http_code_returned(200) { + id = std::to_string(this->m_timeStamp) + \ + std::to_string(generate_assay_unique_id()); m_rules->incrementReferenceCount(); this->debug(4, "Initialising transaction"); } diff --git a/src/modsecurity.cc b/src/modsecurity.cc index 8a9a7bf5..c8bb9cc9 100644 --- a/src/modsecurity.cc +++ b/src/modsecurity.cc @@ -26,9 +26,7 @@ namespace ModSecurity { * @name ModSecurity * @brief Initilizes ModSecurity CPP API * - * ModSecurity initializer. Although it is not really doing anything - * in this version, further versions of this API may demands this to - * be executed. + * ModSecurity initializer. * * Example Usage: * @code @@ -41,6 +39,7 @@ namespace ModSecurity { */ ModSecurity::ModSecurity() { UniqueId::uniqueId(); + srand(time(NULL)); } @@ -48,9 +47,7 @@ ModSecurity::ModSecurity() { * @name msc_init * @brief Initilizes ModSecurity C API * - * ModSecurity initializer. Although it is not really doing anything - * in this version, further versions of this API may demands this to - * be executed. + * ModSecurity initializer. * * Example Usage: * @code diff --git a/src/utils.cc b/src/utils.cc index 5b21c43d..47b11dad 100644 --- a/src/utils.cc +++ b/src/utils.cc @@ -15,6 +15,14 @@ #include "src/utils.h" +#include +#include +#include +#include + +#include +#include +#include #include "modsecurity/modsecurity.h" @@ -33,5 +41,19 @@ std::vector split(std::string str, char delimiter) { } +double random_number(const double from, const double to) { + std::random_device rd; + + return std::bind( + std::uniform_real_distribution<>{from, to}, + std::default_random_engine{ rd() })(); +} + + +double generate_assay_unique_id() { + return random_number(0, 100); +} + + } // namespace ModSecurity diff --git a/src/utils.h b/src/utils.h index 3e491483..cdf00ef0 100644 --- a/src/utils.h +++ b/src/utils.h @@ -24,6 +24,8 @@ namespace ModSecurity { std::vector split(std::string str, char delimiter); + double random_number(const double from, const double to); + double generate_assay_unique_id(); } // namespace ModSecurity #define SRC_UTILS_H_