5

Lors de l'utilisation de la solution Swisscom CloudFoundry avec une application Spring Boot, deux en-têtes Strict-Transport-Security sont ajoutés à une réponse HTTPS. J'ai examiné ce problème et découvert que plusieurs en-têtes sont ajoutés par la solution CloudFoundry. Spring Boot, par défaut, ajoute déjà l'en-tête Strict-Transport-Security (sur les sites sécurisés), ce qui conduit à deux en-têtes HSTS différents.En-tête "Strict-Transport-Security" deux fois en réponse à l'application Swisscom CloudFoundry

Je souhaite configurer les en-têtes de mon application dans mon application. Est-il possible de désactiver cet ajout automatique d'en-tête de la solution Swisscom CloudFoundry?

Sinon, est-il possible d'indiquer à Swisscom Cloud d'écraser les en-têtes Strict-Transport-Security existants au lieu de l'ajouter à la liste des en-têtes?

Une réponse HTTP de l'application de démarrage Spring, déployé le Cloud Swisscom, puis contient les deux têtes suivants:

Strict-Transport-Security:max-age=31536000 ; includeSubDomains 
Strict-Transport-Security:max-age=15768000; includeSubDomains 

Répondre

4

Merci pour le rapport. Actuellement, nous n'insérons (ne remplaçons pas) les en-têtes HSTS, car nous ne savions pas que certains frameworks l'ajoutent par défaut. Nous considérerons toujours remplacer l'en-tête, car les en-têtes dupliqués n'ont probablement aucun sens et la valeur par défaut que nous définissons est appropriée pour la plupart des cas d'utilisation. Pour le moment: Pouvez-vous désactiver le réglage du HSTS dans Spring Boot? Selon le Spring boot docs, vous devriez être en mesure de le désactiver avec cet extrait:

@EnableWebSecurity 
public class WebSecurityConfig extends 
     WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
      // ... 
      .headers() 
       .frameOptions().sameOrigin() 
       .httpStrictTransportSecurity().disable(); 
    } 
} 

Mise à jour: Nous allons changer ce comportement bientôt: Le Appcloud ne mettra l'en-tête si l'application ne définit pas déjà . Nous laissons donc le choix au développeur si et comment il veut implémenter HSTS, mais cela fournira un défaut.

Mise à jour 2: Le nouveau comportement est en place.

+0

Merci pour votre réponse. Cela fonctionne, mais je voudrais gérer ma configuration de sécurité dans mon application. Une configuration de sécurité divisée (c'est-à-dire désactivant activement l'en-tête HSTS dans mon application) augmente la probabilité de l'oublier. Merci pour votre travail! –