pub struct Normalized {
pub path: String,
pub query: Option<String>,
pub query_params: Vec<(String, String)>,
pub cookies: Vec<(String, String)>,
pub headers: Vec<(String, String)>,
pub body: ParsedBody,
pub double_encoding_detected: bool,
pub derived_decoded: Vec<String>,
}Expand description
Canonicalized version of all inspectable fields. Populated by the normalizer before any detection module runs. Raw originals remain in RequestContext fields.
Fields§
§path: StringURL-decoded, traversal-resolved, lowercased path.
query: Option<String>URL-decoded query string (raw, single decode).
query_params: Vec<(String, String)>Parsed, decoded query parameters — repeated names are all kept.
Parsed cookies (from Cookie headers).
headers: Vec<(String, String)>Header names lowercased, values trimmed.
body: ParsedBody§double_encoding_detected: boolTrue when any field had a percent-encoded sequence that decoded to another percent-encoded sequence.
derived_decoded: Vec<String>Phase 10c: additional inspection-only strings DERIVED from field values that were base64-encoded (gotestwaf Base64Flat). Each entry is the base64-decoded + canonicalized form of some query/cookie/body/header value that passed the base64 candidacy gate. “decode-then-match-then-discard”: modules and the prefilter inspect these alongside the real fields, but they are NEVER persisted as a real field value — a derived string that matches no rule has no effect.
Trait Implementations§
Source§impl Clone for Normalized
impl Clone for Normalized
Source§fn clone(&self) -> Normalized
fn clone(&self) -> Normalized
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more