check / check (push) Successful in 3m23s
Every *.rules file in SWWAF_RULES_DIR is read at start and again when one changes, and each request is checked against the rules after the rate limits: log notes a match, block refuses with 403, ban refuses and bans the netblock for SWWAF_ATTACK_BAN_DURATION, made permanent by its next request or its next clear sign of attack. bans.json gains each ban's cause, the request log rule_ids and rule_blocked, the metrics rule matches and rules loaded. The image ships 00-default.rules. Judgement call: a header sent twice is matched with its values joined by ", ". Judgement call: SWWAF_MAX_BAN_DURATION does not cap a ban for an attack. Not in this unit: offences for rule matches, with the error burst. Model: opus-5-5