Erweiterte Header für Astro konfigurieren
Schritt-für-Schritt-Anleitung: Origin-Agent-Cluster, HTTPS-Redirects und weitere Härtungsmaßnahmen per Middleware konfigurieren.
Erweiterte Header in Astro
Neben den Kern-Security-Headern gibt es weitere Header, die die Sicherheit erhöhen: Origin-Agent-Cluster erzwingt Prozess-Isolation im Browser, X-DNS-Prefetch-Control verhindert Privacy-Leaks durch DNS-Prefetching, und X-Permitted-Cross-Domain-Policies blockiert Flash/PDF-Cross-Domain-Zugriffe. Zusammen sind diese Header mit 4 von 166 Punkten im Wolf-Agents Web Security Check relevant.
In Astro konfigurieren Sie alle erweiterten Header zentral in der Middleware. Für SSG-Deployments setzen Sie die Header auf dem Webserver oder der Hosting-Plattform. Wolf-Agents setzt alle erweiterten Header produktiv per Astro-Middleware.
Diese Header haben keine Nebenwirkungen bei typischen Astro-Websites und können ohne Risiko aktiviert werden. Sie sind der letzte Baustein für eine vollständige Header-Absicherung und heben Ihre Note im Wolf-Agents Web Security Check auf das nächste Level.
Erweiterte Header per Middleware (SSR)
Fügen Sie die erweiterten Header zur bestehenden Middleware hinzu. Der HTTPS-Redirect in der Middleware ist nur nötig, wenn Sie nicht hinter einem Reverse Proxy stehen -- Nginx oder Cloudflare uebernehmen den Redirect typischerweise auf Server-Ebene.
// src/middleware.ts -- Erweiterte Header (SSR)
import { defineMiddleware } from 'astro:middleware';
export const onRequest = defineMiddleware(async (context, next) => {
// HTTPS-Redirect (wenn nicht hinter Reverse Proxy)
const url = new URL(context.request.url);
if (url.protocol === 'http:' && !url.hostname.includes('localhost')) {
return Response.redirect(
url.href.replace('http:', 'https:'), 301
);
}
const response = await next();
// Origin-Agent-Cluster: Prozess-Isolation
response.headers.set('Origin-Agent-Cluster', '?1');
// DNS-Prefetch deaktivieren (Privacy)
response.headers.set('X-DNS-Prefetch-Control', 'off');
// X-Permitted-Cross-Domain-Policies (Flash/PDF)
response.headers.set('X-Permitted-Cross-Domain-Policies', 'none');
return response;
});X-Powered-By entfernen und Header kombinieren
Einige Astro-Adapter oder Node.js-Frameworks setzen X-Powered-By und Server-Header, die den verwendeten Tech-Stack verraten. Entfernen Sie diese Header, um Angreifern weniger Informationen zu geben. Kombinieren Sie das Entfernen mit dem Setzen der erweiterten Header.
// src/middleware.ts -- X-Powered-By entfernen und Header setzen
import { defineMiddleware } from 'astro:middleware';
export const onRequest = defineMiddleware(async (context, next) => {
const response = await next();
// Server-Identifikation entfernen
response.headers.delete('X-Powered-By');
response.headers.delete('Server');
// Erweiterte Header setzen
response.headers.set('Origin-Agent-Cluster', '?1');
response.headers.set('X-DNS-Prefetch-Control', 'off');
response.headers.set('X-Permitted-Cross-Domain-Policies', 'none');
response.headers.set('X-Download-Options', 'noopen');
return response;
});SSG-Hosting-Varianten
Für statische Deployments setzen Sie die erweiterten Header auf dem Webserver oder der Hosting-Plattform. Auf Nginx entfernen Sie den Server-Header mit server_tokens off und dem more_clear_headers-Modul.
# Nginx -- Erweiterte Header (SSG)
add_header Origin-Agent-Cluster "?1" always;
add_header X-DNS-Prefetch-Control "off" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
# Server-Header entfernen
server_tokens off;
more_clear_headers Server;
# HTTPS-Redirect
server {
listen 80;
server_name ihre-domain.de;
return 301 https://$host$request_uri;
}// vercel.json -- Erweiterte Header
{
"headers": [{
"source": "/(.*)",
"headers": [
{ "key": "Origin-Agent-Cluster", "value": "?1" },
{ "key": "X-DNS-Prefetch-Control", "value": "off" },
{ "key": "X-Permitted-Cross-Domain-Policies", "value": "none" },
{ "key": "X-Content-Type-Options", "value": "nosniff" }
]
}]
}Verifizieren
Prüfen Sie alle erweiterten Header im Production-Build. Stellen Sie sicher, dass X-Powered-By und Server nicht mehr in den Response-Headers erscheinen.
# Erweiterte Header prüfen
curl -sI https://ihre-domain.de | grep -iE "origin-agent|x-dns|x-permitted|x-powered|server:"
# Erwartete Ausgabe:
# Origin-Agent-Cluster: ?1
# X-DNS-Prefetch-Control: off
# X-Permitted-Cross-Domain-Policies: none
# (X-Powered-By und Server sollten NICHT erscheinen)
# Wolf-Agents Web Security Check für vollständige Analyse
# https://wolf-agents.com/tools/web-security-check Vollstaendige Header-Checkliste für Astro
Mit den erweiterten Headern vervollständigen Sie die Security-Header-Absicherung Ihrer Astro-Anwendung. Die vollständige Checkliste für eine Note A+ im Wolf-Agents Web Security Check umfasst: CSP (35 Pkt), Cross-Origin Headers (30 Pkt), SRI (15 Pkt), HSTS (10 Pkt), X-Frame-Options (10 Pkt), Referrer-Policy (10 Pkt), X-Content-Type-Options (10 Pkt), Permissions-Policy (20 Pkt), Cache-Control (8 Pkt), Reporting API (4 Pkt), Clear-Site-Data (3 Pkt), TLS (4 Pkt), security.txt (2 Pkt) und die hier behandelten erweiterten Header (4 Pkt).
In der Praxis setzen Sie alle Header in einer einzigen Middleware-Datei (src/middleware.ts). Wolf-Agents verwaltet 15+ Security-Header in der Middleware und erreicht damit konsistent die Note A+ im eigenen Web Security Check. Für SSG-Deployments replizieren Sie die Header-Konfiguration auf dem Webserver.
Häufige Fehler bei erweiterten Headern in Astro
HTTPS-Redirect in Middleware statt Server
HTTPS-Redirects sollten idealerweise auf dem Webserver (Nginx) oder Load Balancer erfolgen -- nicht in der Astro-Middleware. Der Server-Redirect ist schneller, wird vor dem App-Start ausgeführt und schlaegt nie fehl, wenn die App nicht erreichbar ist.
X-Powered-By nicht entfernt
Der @astrojs/node-Adapter oder Express setzen X-Powered-By: Express. Entfernen Sie diesen Header in der Middleware: response.headers.delete('X-Powered-By'). Auf Nginx: proxy_hide_header X-Powered-By.
DNS-Prefetch für Performance nötig
Wenn Ihre Astro-App viele externe Domains laedt (CDN, Analytics, Fonts), kann X-DNS-Prefetch-Control: off die Performance verschlechtern. Setzen Sie in diesem Fall explizite <link rel="dns-prefetch"> Tags im Layout statt den Header global zu deaktivieren.
Header bei prerender-Seiten fehlen
Prerenderte Seiten erhalten keine Middleware-Header. Setzen Sie die erweiterten Header auf dem Webserver, um alle Seiten im Hybrid-Modus abzudecken -- auch die statisch generierten.
Compliance-Relevanz
Erweiterte Header ergänzen die Kern-Security-Header und erhöhen die Gesamtsicherheit. NIS2 fordert umfassende technische Maßnahmen -- jeder zusätzliche Header reduziert die Angriffsfläche. Das Entfernen von X-Powered-By und Server ist eine grundlegende Härtungsmaßnahme, die von OWASP und dem BSI empfohlen wird. Der Wolf-Agents Web Security Check bewertet erweiterte Header mit bis zu 4 Punkten.
Wie steht Ihre Domain bei Erweiterte Header?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.