check / check (push) Failing after 14m16s
`smallwebwaf servewaf` runs today's checks on the visitor's request each question carries, answers rproxy, and passes nothing to an app. rproxy reports every request servewaf answered. A report counts an allowed request's bytes and writes servewaf's second log line. The table holds a copy of what a report needs, never the request, so a report cannot reach a request being handled. Judgement call: a question's body is read before any check; over 64 KiB gets 400. Judgement call: a report's bytes and durations have ceilings, so they cannot overflow. Judgement call: a `close` disposition for SWWAF_BAN_RESPONSE=close. Model: opus-5-5
20 lines
583 B
Go
20 lines
583 B
Go
// Command smallwebwaf is a web application firewall for one app: it runs
|
|
// between traefik and the app and passes requests through within its limits,
|
|
// or, as `smallwebwaf servewaf`, answers rproxy's questions about them.
|
|
// Everything it does is in internal/smallwebwaf.
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
|
|
"sneak.berlin/go/smallwebwaf/internal/smallwebwaf"
|
|
)
|
|
|
|
// Version is the version of the binary, set when it is built with
|
|
// -ldflags "-X main.Version=...".
|
|
var Version = "dev" //nolint:gochecknoglobals // the linker sets it
|
|
|
|
func main() {
|
|
os.Exit(smallwebwaf.Main(Version))
|
|
}
|