Entête CSP Bigip : Différence entre versions

De Docaposte Cyberdéfense
Aller à : navigation, rechercher
 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 8 : Ligne 8 :
 
  when HTTP_RESPONSE {
 
  when HTTP_RESPONSE {
 
   HTTP::header insert Content-Security-Policy  "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
 
   HTTP::header insert Content-Security-Policy  "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
        HTTP::header insert X-Content-Security-Policy "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
+
  HTTP::header insert X-Content-Security-Policy "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
        HTTP::header insert X-WebKit-CSP "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
+
  HTTP::header insert X-WebKit-CSP "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
 
  }
 
  }
  
Ligne 15 : Ligne 15 :
  
 
  when HTTP_RESPONSE {
 
  when HTTP_RESPONSE {
  HTTP::header insert X-XSS-Protection "1; mode=block"
+
    HTTP::header insert X-XSS-Protection "1; mode=block"
  HTTP::header insert X-Frame-Options sameorigin
+
    HTTP::header insert X-Frame-Options sameorigin
HTTP::header insert Content-Security-Policy  "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
+
    HTTP::header insert Content-Security-Policy  "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
        HTTP::header insert X-Content-Security-Policy "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
+
    HTTP::header insert X-Content-Security-Policy "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
        HTTP::header insert X-WebKit-CSP "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
+
    HTTP::header insert X-WebKit-CSP "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
 
  }
 
  }
  

Version actuelle datée du 7 août 2018 à 11:22

Pour mettre en place cette entête au niveau d'un bigip:

Créer une irule avec la configuration suivante:

Cette configuration est spécifique a votre plateforme, elle doit inclure les éventuels liens vers des sites externes. Par exemple, si vous avez intégré une carte google maps il sera nécessaire de l'inclure dans votre configuration.

when HTTP_RESPONSE {
  HTTP::header insert Content-Security-Policy  "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
  HTTP::header insert X-Content-Security-Policy "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
  HTTP::header insert X-WebKit-CSP "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
}

si vous avez déja une irule avec des entêtes de défini ajouter la ligne ci-dessus comme suit:

when HTTP_RESPONSE {
   HTTP::header insert X-XSS-Protection "1; mode=block"
   HTTP::header insert X-Frame-Options sameorigin
   HTTP::header insert Content-Security-Policy  "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
   HTTP::header insert X-Content-Security-Policy "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
   HTTP::header insert X-WebKit-CSP "script-src 'unsafe-inline' 'self' maps.google.com maps.googleapis.com"
}

Il est nécessaire d'appliquer l'irule sur le virtuel server concernant par la modification.

Pour savoir si l'entête ne bloque de page légitime, le plus simple est de se connecter à la plateforme via chrome après avoir fait la mise à jour et d'appuyer sur la page F12 pour afficher les outils de développement.

Si l’entête empêche l'accès à certain lien vous verrez les messages d'erreur suivant dans l'onglet console:


Development-tools.png


Vous pourrez alors ajouter le lien manquant a votre configuration CSP.