Validate HTTP response headers against OWASP Secure Headers defaults, plus optional custom rules.
Build locally:
go build ./cmd/hippoRun without installing:
go run ./cmd/hippo --helpRun tests:
go test ./...Check a URL with defaults:
hippo check https://example.comCheck with custom rules (JSON or YAML):
hippo check https://example.com --rules ./rules.yamlDisable defaults and use only custom rules:
hippo check https://example.com --no-defaults --rules ./rules.jsonJSON output:
hippo check https://example.com --output jsonDisable colorized screen output:
hippo check https://example.com --no-colorGenerate a template rules file:
hippo template --out ./rules.yamlhippo check <url> [--rules path] [--no-defaults] [--output screen|text|json] [--no-color] [--method HEAD|GET] [--timeout 10s]
hippo template [--out path] [--format json|yaml]
Rules are provided as JSON or YAML. The structure is:
require: list of required headers withname,value, andmatch.forbid: list of header names that must not appear.
Match modes:
exact(default)containsregex
When you provide --rules along with defaults:
requirerules are merged by header name (case-insensitive). A custom rule with the same header name replaces the default rule.forbidrules are merged as a set (case-insensitive). Custom entries add to the list; duplicates are de-duplicated.
When you pass --no-defaults, only the custom rules file is used.