Wie implementiert man eine strenge Inhaltssicherheitsrichtlinie mit Nonce unter Verwendung von Apache und Angular (20.3)Apache

Apache verstehen
Anonymous
 Wie implementiert man eine strenge Inhaltssicherheitsrichtlinie mit Nonce unter Verwendung von Apache und Angular (20.3)

Post by Anonymous »

Ich habe den ganzen Vormittag damit verbracht, eine strikte Content Security Policy (CSP) mithilfe von Nonces mit Apache und Angular 20.3 SSR zu implementieren.
Auf der Apache-Seite kann ich mithilfe von mod_cspnonce korrekt eine Nonce generieren:

Code: Select all

LoadModule headers_module modules/mod_headers.so
LoadModule cspnonce_module modules/mod_cspnonce.so

Header always set X-Debug-Nonce "%{CSP_NONCE}e"
Der X-Debug-Nonce-Header ist in der Antwort vorhanden und enthält einen Wert.

Problem
Auf der Angular SSR-Seite (Node/Express) kann ich diese Nonce nicht abrufen und in den Renderkontext von Angular einfügen.
Es passiert nichts: Angular rendert keine Nonce-Attribute für - oder -Tags.

SSR-Middleware-Code

Code: Select all

app.use((req, res, next) => {
const nonceHeader = req.headers['X-Debug-Nonce'];
const nonce =
typeof nonceHeader === 'string' ? nonceHeader : 'aezeazeazaez';

angularApp
.handle(req, {
providers: [
{
provide: CSP_NONCE,
useValue: nonce,
},
],
})
.then((response) =>
response ? writeResponseToNodeResponse(response, res) : next(),
)
.catch(next);
});
Selbst wenn ein statischer Fallback-Wert erzwungen wird, fügt Angular die Nonce nicht ein.

Was ich versucht habe
  • Lesen der Nonce aus einem benutzerdefinierten Antwortheader
  • Bereitstellen von CSP_NONCE während des SSR-Renderings
  • Ersetzen von Werten direkt in HTML mit Apache (

    Code: Select all

    mod_substitute
    )
  • Mehrere alternative Ansätze sowohl auf Apache- als auch auf Node-Seite
Keiner dieser Versuche führte zu Nonce-Attributen im gerenderten HTML.

Fragen
  • Ist es für Angular SSR tatsächlich möglich, ein von Apache generiertes Nonce zu verbrauchen?
  • Ist dieser Ansatz grundlegend fehlerhaft und sollte die Nonce nur vom Node-SSR-Server generiert werden?
  • Wenn Apache verwendet wird, wie kann eine Nonce dann korrekt an Angular SSR weitergeleitet werden?
  • Gibt es funktionierende Referenzimplementierungen für Angular SSR + striktes CSP (kein Unsafe-Inline)?
Jede Anleitung oder bewährte Vorgehensweise wäre willkommen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post