Sécurisation XSS

Modifié par Christian SENET le 2016/03/25 09:31

Configuration pour TOMCAT

Préconisations de sécurisation des headers HTTP

Configuration du token de session JSESSIONID à HttpOnly dans le fichier web.xml

JSESSIONID HttpOnly
<session-config>
<cookie-config>
 <http-only>true</http-only>
</cookie-config>
</session-config>

La mise en place des directives de protection XSS relèvent généralement de la configuration d'un frontal Web. Cependant, il est possible de rajouter ces directives directement dans l'application par ajout d'une servlet filter dans le fichier web.xml de l'application

XSSFilter
 <filter>
   <display-name>XSSFilter</display-name>
   <filter-name>XSSFilter</filter-name>
   <filter-class>com.hardis.adelia.filter.XSSFilter</filter-class>
 </filter>
 <filter-mapping>
   <filter-name>XSSFilter</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>

Paramétrage du filtre avec des valeurs spécifiques

XSSFilter
 <filter>
   <display-name>XSSFilter</display-name>
   <filter-name>XSSFilter</filter-name>
   <filter-class>com.hardis.adelia.filter.XSSFilter</filter-class>
   <init-param>
     <description>X-FRAME-OPTIONS value</description>
     <param-name>X-FRAME-OPTIONS</param-name>
     <param-value>DENY</param-value>
   </init-param>
   <init-param>
     <description>X-Content-Type-Options value</description>
     <param-name>X-Content-Type-Options</param-name>
     <param-value>nosniff</param-value>
   </init-param>
   <init-param>
     <description>X-XSS-Protection value</description>
     <param-name>X-XSS-Protection</param-name>
     <param-value>1; mode=block</param-value>
   </init-param>
 </filter>
 <filter-mapping>
   <filter-name>XSSFilter</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>

Attribut

Valeur par défaut

Remarque

X-FRAME-OPTIONS
DENY

Valeurs possibles : DENY, SAMEORIGIN, ALLOW-FROM https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet

X-Content-Type-Options
nosniff
X-XSS-Protection
1; mode~=block

Configuration pour HaProxy

Pour configurer dans HAProxy l'envoi des entêtes anti-XSS ajouter ceci à votre frontend , listener ou backend configuration :

JSESSIONID HttpOnly
rspadd X-Frame-Options:\ DENY
rspadd X-Content-Type-Options:\ nosniff
rspadd X-XSS-Protection:\ 1; mode=block
 

Configuration pour Apache Httpd

Pour configurer dans Apache l'envoi des entêtes anti-XSS pour toutes les pages , ajouter à la configuration de votre site

:

httpd.conf

Header set Set-Cookie HttpOnly;Secure
Header always append X-XSS-Protection 1;mode=block
Header always append X-Frame-Options DENY
Header always append X-Content-Type-Options nosniff