Java Web Stack: Tomcat/Jetty hinter Proxy richtig absichern

Java-Webanwendungen laufen häufig auf Servlet-Containern wie Tomcat oder Jetty. Um Sicherheit, Performance und Skalierbarkeit zu gewährleisten, sollten diese Container niemals direkt dem Internet ausgesetzt werden. Stattdessen empfiehlt sich der Betrieb hinter einem Reverse Proxy wie Nginx oder Apache. Dieser Artikel erläutert praxisorientiert, wie Java-Web-Stacks hinter einem Proxy korrekt abgesichert und optimiert werden. Reverse Proxy Architektur…

Static Asset Pipeline: Immutable Assets, Fingerprinting und Long TTL

Die Optimierung der Auslieferung statischer Assets ist ein entscheidender Faktor für die Web-Performance. Eine gut geplante Static Asset Pipeline mit Immutable Assets, Fingerprinting und langen TTLs (Time-to-Live) sorgt dafür, dass Inhalte effizient gecached werden, Latenzen minimiert und die Belastung des Origins reduziert werden. Dieser Artikel zeigt praxisnah, wie Sie solche Strategien implementieren, welche Best Practices…

gRPC über Proxy: HTTP/2 Routing, Timeouts und Observability

gRPC hat sich in modernen Microservice-Architekturen als leistungsfähiges RPC-Protokoll etabliert. Da gRPC auf HTTP/2 aufbaut, ergeben sich spezielle Anforderungen, wenn die Kommunikation über Reverse Proxies oder Load Balancer laufen soll. Dieser Artikel erklärt praxisnah, wie gRPC über Proxy-Umgebungen korrekt betrieben wird, inklusive Routing, Timeouts und Observability. gRPC Architektur und HTTP/2 Grundlagen gRPC nutzt HTTP/2 als…

ETag/Last-Modified Strategien: Conditional Requests sinnvoll einsetzen

Conditional Requests sind ein essenzielles Mittel, um Webserver effizienter zu betreiben, Bandbreite zu sparen und die Antwortzeiten für wiederkehrende Clients zu verbessern. Durch den gezielten Einsatz von ETag und Last-Modified können Clients prüfen, ob sich eine Ressource geändert hat, bevor sie vollständig heruntergeladen wird. Dieser Artikel erklärt praxisnah, wie diese Mechanismen korrekt implementiert werden, welche…

Rate Limits pro Kunde: API Quotas mit Nginx Maps und Keys

In modernen API-Architekturen ist es entscheidend, die Anzahl der Requests pro Kunde zu steuern, um Missbrauch zu verhindern und die Systemstabilität zu gewährleisten. Nginx bietet leistungsstarke Mechanismen, um individuelle Rate Limits pro API-Key oder Client zu implementieren. In diesem Artikel zeigen wir praxisnah, wie API Quotas mit Nginx Maps und Keys realisiert werden können. Grundlagen…

Auth am Edge: OIDC/OAuth2 via oauth2-proxy oder Nginx Plus Patterns

In modernen Web-Architekturen ist die Authentifizierung am Edge ein zentraler Bestandteil der Sicherheitsstrategie. OpenID Connect (OIDC) und OAuth2 ermöglichen Single Sign-On, API-Schutz und granularen Zugriff. Dieser Artikel erläutert, wie OIDC/OAuth2 am Edge über Tools wie oauth2-proxy oder Nginx Plus implementiert werden kann, inklusive gängiger Patterns, Token-Handling und Best Practices. Grundlagen von OIDC und OAuth2 OIDC…

JWT Validation am Reverse Proxy: Chancen und typische Fehler

Die Validierung von JSON Web Tokens (JWT) am Reverse Proxy ist eine zentrale Maßnahme, um Webapplikationen sicher und performant abzusichern. Indem Tokens bereits am Edge überprüft werden, lassen sich unautorisierte Requests frühzeitig abfangen, die Backend-Systeme entlasten und gleichzeitig ein konsistentes Authentifizierungsmodell für Microservices oder monolithische Anwendungen etablieren. In diesem Artikel werden Chancen, typische Implementierungsansätze und…

CORS korrekt konfigurieren: Security ohne Dev-Blocker

Cross-Origin Resource Sharing (CORS) ist ein essenzielles Sicherheitsfeature moderner Webanwendungen, das den Zugriff von Ressourcen zwischen verschiedenen Domains steuert. Eine fehlerhafte Konfiguration kann entweder legitime Requests blockieren oder Angreifern ungewollt Zugriff gewähren. In diesem Artikel betrachten wir praxisnah, wie CORS korrekt eingerichtet wird, typische Fallstricke vermieden werden und gleichzeitig eine reibungslose Entwicklererfahrung erhalten bleibt. Grundlagen…

Headers & Forwarded Chains: X-Forwarded-For, Proto, Host auditierbar machen

In modernen Web-Architekturen werden Requests häufig über mehrere Proxies oder Load Balancer geleitet, bevor sie die Anwendung erreichen. Header wie X-Forwarded-For, X-Forwarded-Proto oder X-Forwarded-Host enthalten essenzielle Informationen über den ursprünglichen Client, das Protokoll und den Zielhost. Damit diese Informationen zuverlässig und auditierbar bleiben, muss ihre Verarbeitung und Absicherung sorgfältig geplant werden. In diesem Artikel erläutern…

Real-IP Handling: Client IP korrekt ermitteln trotz Proxies/CDN

In modernen Web-Architekturen werden Clients häufig über mehrere Proxies, Load Balancer oder Content Delivery Networks (CDNs) geleitet, bevor sie die eigentliche Anwendung erreichen. In solchen Setups wird die ursprüngliche Client-IP oft durch Header wie X-Forwarded-For oder CF-Connecting-IP transportiert. Die korrekte Ermittlung der realen Client-IP ist entscheidend für Logging, Rate-Limiting, Sicherheit und Auditierung. In diesem Artikel…