// secheaders-devserver dient der manuellen/e2e-Verifikation von API-08 // (Pruefung 2: CSP blockiert Inline-Script) mit einem echten Browser. // Zwei Pfade: /protected (mit Middleware) und /unprotected (ohne) — beide // liefern dieselbe Seite mit einem Inline-Script, das ein DOM-Element // aendert. Ein echter Browser zeigt den Unterschied. package main import ( "log" "net/http" "gitea.perlbach24.de/scripte/nexarch/internal/secheaders" ) const page = `
BLOCKED
` func servePage(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf-8") _, _ = w.Write([]byte(page)) } func main() { cfg := secheaders.DefaultConfig() mux := http.NewServeMux() // SetHeaders statt Middleware: dieser lokale Demo-Server laeuft ohne // TLS-Terminierung, der HTTPS-Redirect-Teil von Middleware wuerde hier // in eine Endlosschleife fuehren (siehe secheaders.go-Dokumentation). mux.HandleFunc("/protected", func(w http.ResponseWriter, r *http.Request) { secheaders.SetHeaders(cfg, w) servePage(w, r) }) mux.HandleFunc("/unprotected", servePage) log.Println("secheaders-devserver listening on :8086") log.Fatal(http.ListenAndServe(":8086", mux)) }