
Secure Owl Firewall is a fast, lightweight firewall plugin with an advanced rule engine featuring PCRE pattern matching, a transformation pipeline, and JSON-based rule configuration.
Key features:
The firewall runs before regular plugins and the theme load, so add filters that change how requests are checked (lists, proxies, rules, logging, blocking) in a must-use plugin.
sswaf_ip_whitelist — array of IPs or CIDR ranges that bypass the firewallsswaf_ip_blacklist — array of IPs or CIDR ranges to block before any rules run (the whitelist still wins)sswaf_trusted_proxies — array of trusted proxy IPs for X-Forwarded-Forsswaf_post_scanning — enable POST data inspection (default: true)sswaf_json_scanning — enable JSON request body inspection (default: true)sswaf_json_max_body — request body size limit for inspection, in bytessswaf_json_skip_authenticated — whether trusted logged-in users are exempt from request body inspectionsswaf_json_skip_capability — capability that marks a logged-in user as trustedsswaf_rules_file — path to the rules JSON filesswaf_log_dir — directory of the log filesswaf_log_file — path to the log filesswaf_log_max_size — log size in bytes at which the log is rotated (default: 10 MB, at most 32 MB)sswaf_header_status — HTTP status header for blocked requestssswaf_header_connection — Connection header for blocked requestssswaf_block_on_engine_error — block requests the rule engine cannot fully check (default: true); return false to only log themsswaf_speed_limit_skip — return true to turn the login speed limit off, for login forms that cannot include its hidden fieldssswaf_before_block — action hook fired before blocking a requestsswaf_rate_limit_ip_threshold — override IP hit thresholdsswaf_rate_limit_ip_duration — override IP ban durationsswaf_rate_limit_ip_window — override IP counting windowsswaf_rate_limit_subnet_threshold — override subnet hit thresholdsswaf_rate_limit_subnet_duration — override subnet ban durationsswaf_rate_limit_subnet_window — override subnet counting windowRate-limit values from filters are kept within the ranges of the settings page.