Wiki source code of Sécurisation XSS
Last modified by Christian SENET on 2016/03/25 09:31
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | ((( | ||
| 2 | = Configuration pour TOMCAT = | ||
| 3 | ))) | ||
| 4 | |||
| 5 | Préconisations de sécurisation des headers HTTP | ||
| 6 | |||
| 7 | Configuration du token de session JSESSIONID à HttpOnly dans le fichier web.xml | ||
| 8 | |||
| 9 | |||
| 10 | {{code language="xml" title="JSESSIONID HttpOnly" language="xml"}} | ||
| 11 | <session-config> | ||
| 12 | <cookie-config> | ||
| 13 | <http-only>true</http-only> | ||
| 14 | </cookie-config> | ||
| 15 | </session-config> | ||
| 16 | {{/code}} | ||
| 17 | |||
| 18 | |||
| 19 | |||
| 20 | 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 | ||
| 21 | |||
| 22 | |||
| 23 | |||
| 24 | {{code language="xml" title="XSSFilter" language="xml"}} | ||
| 25 | <filter> | ||
| 26 | <display-name>XSSFilter</display-name> | ||
| 27 | <filter-name>XSSFilter</filter-name> | ||
| 28 | <filter-class>com.hardis.adelia.filter.XSSFilter</filter-class> | ||
| 29 | </filter> | ||
| 30 | <filter-mapping> | ||
| 31 | <filter-name>XSSFilter</filter-name> | ||
| 32 | <url-pattern>/*</url-pattern> | ||
| 33 | </filter-mapping> | ||
| 34 | {{/code}} | ||
| 35 | |||
| 36 | |||
| 37 | Paramétrage du filtre avec des valeurs spécifiques | ||
| 38 | |||
| 39 | |||
| 40 | {{code language="xml" title="XSSFilter" language="xml"}} | ||
| 41 | <filter> | ||
| 42 | <display-name>XSSFilter</display-name> | ||
| 43 | <filter-name>XSSFilter</filter-name> | ||
| 44 | <filter-class>com.hardis.adelia.filter.XSSFilter</filter-class> | ||
| 45 | <init-param> | ||
| 46 | <description>X-FRAME-OPTIONS value</description> | ||
| 47 | <param-name>X-FRAME-OPTIONS</param-name> | ||
| 48 | <param-value>DENY</param-value> | ||
| 49 | </init-param> | ||
| 50 | <init-param> | ||
| 51 | <description>X-Content-Type-Options value</description> | ||
| 52 | <param-name>X-Content-Type-Options</param-name> | ||
| 53 | <param-value>nosniff</param-value> | ||
| 54 | </init-param> | ||
| 55 | <init-param> | ||
| 56 | <description>X-XSS-Protection value</description> | ||
| 57 | <param-name>X-XSS-Protection</param-name> | ||
| 58 | <param-value>1; mode=block</param-value> | ||
| 59 | </init-param> | ||
| 60 | </filter> | ||
| 61 | <filter-mapping> | ||
| 62 | <filter-name>XSSFilter</filter-name> | ||
| 63 | <url-pattern>/*</url-pattern> | ||
| 64 | </filter-mapping> | ||
| 65 | {{/code}} | ||
| 66 | |||
| 67 | |=((( | ||
| 68 | Attribut)))|=((( | ||
| 69 | Valeur par défaut)))|=((( | ||
| 70 | Remarque))) | ||
| 71 | |((( | ||
| 72 | {{{X-FRAME-OPTIONS}}} | ||
| 73 | )))|((( | ||
| 74 | {{{DENY}}} | ||
| 75 | )))|((( | ||
| 76 | Valeurs possibles : DENY, SAMEORIGIN, ALLOW-FROM [[https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet>>url:https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet]]))) | ||
| 77 | |((( | ||
| 78 | {{{X-Content-Type-Options}}} | ||
| 79 | )))|((( | ||
| 80 | {{{nosniff}}} | ||
| 81 | )))|((( | ||
| 82 | ))) | ||
| 83 | |(% colspan="1" %)((( | ||
| 84 | {{{X-XSS-Protection}}} | ||
| 85 | )))|(% colspan="1" %)((( | ||
| 86 | {{{1; mode~=block}}} | ||
| 87 | )))|(% colspan="1" %)((( | ||
| 88 | |||
| 89 | ))) | ||
| 90 | |||
| 91 | |||
| 92 | ((( | ||
| 93 | = Configuration pour HaProxy = | ||
| 94 | ))) | ||
| 95 | |||
| 96 | Pour configurer dans HAProxy l'envoi des entêtes anti-XSS ajouter ceci à votre //frontend// , //listener// ou //backend// configuration : | ||
| 97 | |||
| 98 | |||
| 99 | {{code language="xml" title="JSESSIONID HttpOnly" language="xml"}} | ||
| 100 | rspadd X-Frame-Options:\ DENY | ||
| 101 | rspadd X-Content-Type-Options:\ nosniff | ||
| 102 | rspadd X-XSS-Protection:\ 1; mode=block | ||
| 103 | |||
| 104 | {{/code}} | ||
| 105 | |||
| 106 | |||
| 107 | |||
| 108 | ((( | ||
| 109 | = Configuration pour Apache Httpd = | ||
| 110 | ))) | ||
| 111 | |||
| 112 | Pour configurer dans Apache l'envoi des entêtes anti-XSS pour toutes les pages , ajouter à la configuration de votre site | ||
| 113 | |||
| 114 | : | ||
| 115 | |||
| 116 | |||
| 117 | {{code language="xml" title="httpd.conf" language="xml"}} | ||
| 118 | |||
| 119 | Header set Set-Cookie HttpOnly;Secure | ||
| 120 | Header always append X-XSS-Protection 1;mode=block | ||
| 121 | Header always append X-Frame-Options DENY | ||
| 122 | Header always append X-Content-Type-Options nosniff | ||
| 123 | |||
| 124 | {{/code}} | ||
| 125 |