Rapport 2019 sur la sécurité des frameworks JavaScript
30 octobre 2019
0 minutes de lectureBienvenue dans le rapport 2019 de Snyk sur l’état de la sécurité des frameworks JavaScript.
Dans ce rapport, nous étudions l’état de la sécurité des écosystèmes Angular et React. Ce rapport n’a aucunement pour objectif d’entrer dans les éventuelles rivalités entre les deux, notamment pour déterminer si l’un ou l’autre est un véritable framework : nous ne les comparons pas en tant que frameworks concurrents. Nous les considérons plutôt comme deux alternatives viables au sein de l’écosystème frontend pour créer vos projets JavaScript, en nous concentrant sur les risques de sécurité, les bonnes pratiques propres à chacune et leurs différences.
Nous vous recommandons vivement de télécharger la version complète du rapport au format numérique, mais nous avons également publié les sections générales suivantes sous forme d’articles de blog :
Rapport 2019 sur l’état de la sécurité des frameworks JavaScript
Comparaison côte à côte des vulnérabilités de sécurité d’Angular et de React en 2019
Angular vs React : le risque de sécurité des dépendances indirectes
Comparaison des pratiques de codage sécurisé de React et d’Angular
84 % des sites web sont concernés par des vulnérabilités XSS dans jQuery
Ce rapport porte sur :
les pratiques de sécurité de chacun des deux projets principaux, Angular et React
l’état de la sécurité de chacun des deux écosystèmes de modules, à partir d’une analyse approfondie des vulnérabilités qu’ils contiennent
les pratiques de sécurité d’autres frameworks frontend JavaScript courants, comme Vue.js, Bootstrap et jQuery
les principales différences en matière de sécurité entre les différentes options, notamment entre Angular et React
Principaux enseignements du rapport 2019 sur la sécurité des frameworks JavaScript
Voici les principaux enseignements tirés des résultats de notre rapport.
Sécurité des projets principaux Angular et React | Sécurité des écosystèmes de modules Angular et React |
🔘Le projet historique AngularJS (Angular v1.x) contient vingt-trois vulnérabilités de sécurité. | 🔘 Les écosystèmes de modules de React et d’Angular présentent tous deux des vulnérabilités de sécurité dans des composants de bibliothèques frontend très populaires, totalisant des millions de téléchargements. Certaines ne disposent encore d’aucun correctif de sécurité. |
🔘Aucune vulnérabilité de sécurité n’a été relevée dans les composants du framework Angular principal. | 🔘Nous avons observé des modules malveillants dans les écosystèmes Angular et React, qui tentaient de dérober des numéros de carte bancaire, des mots de passe et d’autres données sensibles utilisées dans les applications web frontend. |
🔘React présente quelques vulnérabilités de sécurité ; il semble que des vulnérabilités soient régulièrement découvertes dans ses bibliothèques principales et divulguées tous les deux ans environ. | 🔘Le framework Next.js a fait preuve d’un engagement remarquable en matière de sécurité : il a rapidement corrigé les cinq vulnérabilités découvertes au cours de son existence, en proposant des correctifs en une semaine seulement. |
🔘Une seule vulnérabilité du projet principal React est associée à un CVE officiel. Aucune des vulnérabilités signalées pour Angular ne figure dans la liste des CVE. Ces constats soulignent ensemble la nécessité d’une base de données sur les vulnérabilités qui s’appuie sur l’activité de la communauté open source afin de faire ressortir les problèmes de sécurité pertinents. | |
🔘Snyk signale vingt-six vulnérabilités de sécurité dans les projets principaux Angular et React, qui échappent aux rapports de npm audit. |
À propos des CVE et des vulnérabilités de sécurité
Pour étudier la situation globale en matière de sécurité de chacun des écosystèmes couverts par ce rapport, nous examinons notamment les vulnérabilités de sécurité recensées dans les différents packages concernés. Nous analysons et présentons ces vulnérabilités dans le contexte des vulnérabilités connues, et parfois en les comparant à celles-ci.
Les vulnérabilités connues se voient attribuer un numéro d’identification dans la liste des vulnérabilités et expositions courantes (CVE), tenue par les autorités de numérotation CVE (CNA). Les CVE se voient attribuer des scores CVSS qui indiquent la gravité des vulnérabilités répertoriées. Découvrez comment la gravité des vulnérabilités est évaluée selon le CVSS.
Situation d’Angular et de React en matière de sécurité | Sécurité des écosystèmes frontend |
🔘Angular propose des consignes de sécurité visibles et accessibles, un contact dédié à la sécurité et une politique de divulgation responsable, autant d’éléments absents du projet React. | 🔘jQuery a été téléchargé plus de 120 millions de fois au cours des 12 derniers mois et, selon W3Techs, jQuery v1.x est utilisé par 84 % des sites web qui utilisent jQuery. Cette version est touchée par quatre vulnérabilités XSS de gravité moyenne. En réalité, si vous n’utilisez pas jQuery v3.4.0 ou une version ultérieure, ce qui est le cas de la majorité des utilisateurs de jQuery, vous utilisez une version qui comporte des vulnérabilités de sécurité. |
🔘Angular offre une prise en charge intégrée plus étendue de l’assainissement des données et de l’encodage des sorties dans différents contextes, comme les attributs d’URL dans les éléments d’ancrage (ou liens) HTML. | 🔘Bootstrap a été téléchargé 79 185 409 fois au cours des douze derniers mois, alors qu’il comporte sept vulnérabilités de type Cross-Site Scripting (XSS). Trois d’entre elles ont été divulguées en 2019. Des modules communautaires populaires comme totalisent plus de 300 000 téléchargements sur la même période, malgré l’absence de correctif de sécurité ou de solution de mise à niveau pour leurs vulnérabilités XSS. totalise plus de deux millions de téléchargements et comporte une vulnérabilité XSS de gravité élevée, repérée par l’équipe de recherche de Snyk grâce à son système propriétaire de veille sur les menaces. |
🔘React ne dispose pas de mécanismes intégrés pour assainir les données, mais encode les sorties par défaut dans la plupart des cas. Il revient donc aux développeurs de traiter les cas non pris en charge, comme les refs et les attributs d’URL (ces derniers étant pris en charge depuis la version React v16.9.0). | 🔘Le framework Vue.js a été téléchargé plus de 40 millions de fois au cours des 12 derniers mois et compte quatre vulnérabilités au total dans le cœur de Vue.js , toutes corrigées. |
🔘Angular intègre à son service HTTP un mécanisme de sécurité qui protège contre les vulnérabilités de type Cross-Site Request Forgery (CSRF). Les développeurs React doivent gérer ces problèmes eux-mêmes. |
Poursuivez votre lecture avec Angular vs React : duel de sécurité 2019 ou téléchargez le rapport complet.
Rapport 2019 sur l’état de la sécurité des frameworks JavaScript
Comparaison côte à côte des vulnérabilités de sécurité d’Angular et de React en 2019
Angular vs React : le risque de sécurité des dépendances indirectes
Comparaison des pratiques de codage sécurisé de React et d’Angular
84 % des sites web sont concernés par des vulnérabilités XSS dans jQuery
Ce rapport examine la sécurité globale de chaque framework, de ses écosystèmes de modules alimentés par la communauté et des risques de sécurité associés. À partir de ces constats, il propose des conseils de sécurité concrets aux utilisateurs d’Angular et de React, en mettant en avant les bonnes pratiques du secteur pour écrire du code sécurisé.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.
