URL: https://linuxfr.org/news/content-security-policy-1-0-integre-a-firefox Title: Content Security Policy 1.0 intégré à Firefox Authors: xenom Nÿco, rootix, NeoX et Benoît Sibaud Date: 2013年06月13日T23:19:01+02:00 License: CC By-SA Tags: firefox Score: 23 Depuis le 30 mai, Content Security Policy (CSP) 1.0 est supporté par Firefox, dans le canal Aurora (version pre-beta de Firefox). C'est une bonne occasion de parler de cette nouvelle méthode de protection de l'utilisateur qui tend à être intégrée dans tous les navigateurs. Content Security Policy ? ========================= CSP est un mécanisme de sécurité dont le but est de protéger l'utilisateur contre les [failles XSS](http://fr.wikipedia.org/wiki/XSS) (cross-site scripting) en permettant aux sites web de restreindre l'origine des scripts. CSP a été crée par la fondation Mozilla, et les premières implémentations ont été intégrés à Firefox 4. Depuis le 15 novembre 2012, c'est même [une recommandation candidate du W3C](http://www.w3.org/TR/CSP/), et c'est cette version qui sera intégrée dans Firefox 23. _NdM : merci à xenom pour son journal._ ---- [Journal à l'origine de la dépêche](http://linuxfr.org/users/xenom/journaux/content-security-policy-1-0-integre-a-firefox) ---- # Pourquoi ? La sécurité des navigateurs web au niveau des scripts repose sur la [same origine policy](http://en.wikipedia.org/wiki/Same_origin_policy), qui restreint l'accès aux données du site aux scripts provenant du même site. Par exemple un script situé sur https://linuxfr.org a accès aux données, comme les cookies, provenant uniquement de https://linuxfr.org et ne pourra pas lire les données provenant de http://example.org. Sauf que cette restriction peut être contournée en injectant les scripts malicieux dans le contenu de la page, et repose sur la non-capacité des navigateurs à reconnaître un script légitime d'un script qui aurait été injecté. C'est le principe des attaques XSS. C'est pour éviter cela qu'a été créé CSP. # Comment ça marche ? L’entête HTTP Content-Security envoyée avec la page contient une liste des domaines d’où peuvent provenir les différents scripts. Pour que ce soit efficace, le Javascript inline est bloqué, tout comme les fonctions comme `eval` qui permettrait l’exécution de code. Si un attaquant injecte un script situé sur un domaine non autorisé par la CSP, le navigateur refuse de l’exécuter. CSP va même plus loin en donnant le contrôle sur la provenance d'autres ressources, comme les images, les frames ou les polices. # Quelles différences avec [NoScript](http://noscript.net/) ? Déjà, CSP est intégré de base au navigateur contrairement à cette extension. Ensuite et surtout, la source du filtrage est différent, NoScript est configuré par l'utilisateur, CSP par le webmaster. CSP ne protégera donc pas l'utilisateur des scripts malveillants ou de tracking si ils ont été mis en place et autorisés par le webmaster, ni des [MITM](http://fr.wikipedia.org/wiki/Attaque_de_l%27homme_du_milieu) si l'attaquant modifie aussi l’entête CSP. # Qui le prend en charge ? La plupart des navigateurs, mais souvent dans une version expérimentale avec des préfixes particuliers. Seul Chrome et les futures versions de Firefox implémentent la recommandation complètement et avec les entêtes définies dans la version 1.0. Safari utilise des entêtes X-WebKit-CSP, Internet Explorer uniquement une version partielle depuis sa version 10. Opera ne supporte pas CSP, mais cela devrait être le cas dans sa prochaine version. Si le navigateur ne le supporte pas, cela n'aura pas d'impact visible pour l'utilisateur, CSP ne sera juste pas pris en considération. Voici un [tableau sur la compatibilité](http://caniuse.com/#search=CSP) des navigateurs avec CSP. # Envie d'en savoir plus ? Je conseille la lecture de [cet article très complet](http://www.html5rocks.com/en/tutorials/security/content-security-policy/), et de [l'annonce sur le blog de Mozilla](https://blog.mozilla.org/security/2013/06/11/content-security-policy-1-0-lands-in-firefox/). Pour aider à l’écriture de la politique de sécurité, Mozilla a sorti [une extension Firefox](https://hacks.mozilla.org/2013/05/content-security-policy-1-0-lands-in-firefox-aurora/). Cette extension permet aussi aux utilisateurs de définir une politique CSP pour des sites ne la supportant pas encore.