whatwaf 1.10.6

Heuristic web application firewall (WAF) detector.
Documentation
use crate::detectors::Detector;
use crate::utils::checks::MatchMode;
use crate::utils::http::HttpResponse;

pub struct Sucuri;

impl Detector for Sucuri {
    fn name(&self) -> &'static str {
        "Sucuri"
    }

    fn detect(&self, resp: &HttpResponse) -> bool {
        (resp.has_header(&["x-sucuri-block"], MatchMode::Any)
            || resp.body_has(&["Sucuri Website Firewall"], MatchMode::Any))
            && resp.is_forbidden()
    }
}

inventory::submit! {
    &Sucuri as &dyn Detector
}