""" Security Headers Middleware for GT 2.0 Adds security headers to all responses. """ from fastapi import Request, Response from starlette.middleware.base import BaseHTTPMiddleware import uuid class SecurityHeadersMiddleware(BaseHTTPMiddleware): """Middleware to add security headers to all responses""" async def dispatch(self, request: Request, call_next): # Generate request ID for tracing request_id = str(uuid.uuid4()) request.state.request_id = request_id response = await call_next(request) # Add security headers response.headers["X-Request-ID"] = request_id response.headers["X-Content-Type-Options"] = "nosniff" response.headers["X-Frame-Options"] = "DENY" response.headers["X-XSS-Protection"] = "1; mode=block" response.headers["Referrer-Policy"] = "strict-origin-when-cross-origin" response.headers["Content-Security-Policy"] = ( "default-src 'self'; " "script-src 'self'; " "style-src 'self' 'unsafe-inline'; " "img-src 'self' data: https:; " "connect-src 'self' ws: wss:;" ) return response