feat(honeybar): HoneyOS-Leiste einbinden, CSP-Ausnahme dafür
Die Leiste kommt als Skript von der HoneyOS-Domain und holt sich von dort ihre App-Liste. Beides blockte die CSP bisher (script-src / connect-src fielen auf 'self' zurueck) – ohne Ausnahme erschien sie gar nicht. - HONEYBAR_ORIGIN nimmt genau diesen einen Ursprung in script-src und connect-src auf. Leer heisst: keine Leiste, und die Regel bleibt so eng wie bisher. Frame-Freigabe erbt sie ausdruecklich nicht. - SecurityHeaders nimmt die Ausnahmen jetzt als CSP-Struct statt als variadische frameSrc-Liste – mit drei Richtungen wurde das sonst unklar. - Das <script>-Tag steht in der index.html und nicht serverseitig eingespritzt: der Service Worker legt die index.html in seinen Vorrat (navigateFallback), was zur Bauzeit fehlt, kaeme im Browser nie an. - defer, damit ein langsames oder abgeschaltetes HoneyOS den Start von Aether nicht ausbremst. Tests fuer die neue Regel: eng ohne Ausnahme, beide Richtungen mit, Pfad wird auf den Ursprung gekuerzt, Adresse ohne Schema faellt raus. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b5a83e4057
commit
9b8e82cdb2
6 files changed
+164
-17
No files matched your search
@@ -314,7 +314,13 @@ func main() {
|
||||
r.Use(chimiddleware.RequestID)
|
||||
r.Use(middleware.TrustedProxy(cfg))
|
||||
r.Use(middleware.Logger)
|
||||
r.Use(middleware.SecurityHeaders(officeFrameSrc))
|
||||
r.Use(middleware.SecurityHeaders(middleware.CSP{
|
||||
FrameSrc: []string{officeFrameSrc},
|
||||
// Die HoneyOS-Leiste kommt als Skript von dort und holt sich von dort
|
||||
// auch ihre App-Liste. Leer = keine Leiste und die alte, engere Regel.
|
||||
ScriptSrc: []string{cfg.HoneybarOrigin},
|
||||
ConnectSrc: []string{cfg.HoneybarOrigin},
|
||||
}))
|
||||
r.Use(chimiddleware.Recoverer)
|
||||
|
||||
r.Get("/health", func(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
Reference in new issue
Block a user