{"id":84184,"date":"2020-06-05T19:42:31","date_gmt":"2020-06-05T17:42:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god"},"modified":"2020-06-05T19:42:31","modified_gmt":"2020-06-05T17:42:31","slug":"smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","title":{"rendered":"Les p\u00e9ch\u00e9s mortels en mati\u00e8re de s\u00e9curit\u00e9 des sites : ce que nous avons appris des statistiques du scanner de vuln\u00e9rabilit\u00e9s en un an","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Il y a environ un an, nous avons lanc\u00e9 chez DataLine <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dtln.ru\/uslugi\/security\/securityscan\">un service<\/a><\/noindex> un service pour la recherche et l'analyse des vuln\u00e9rabilit\u00e9s dans les applications IT. \u00c0 la base du service se trouve la solution cloud Qualys, dont nous <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataline\/blog\/457768\/\">avons d\u00e9j\u00e0 parl\u00e9<\/a><\/noindex>. En un an d'utilisation de la solution, nous avons effectu\u00e9 291 scans pour diff\u00e9rents sites et accumul\u00e9 des statistiques sur les vuln\u00e9rabilit\u00e9s courantes dans les applications web.\u00a0<\/p>\n<p>Dans l'article ci-dessous, je vais vous montrer quelles failles de s\u00e9curit\u00e9 des sites se cachent derri\u00e8re diff\u00e9rents niveaux de criticit\u00e9. Voyons quelles vuln\u00e9rabilit\u00e9s le scanner a d\u00e9tect\u00e9es particuli\u00e8rement souvent, pourquoi elles peuvent appara\u00eetre et comment se prot\u00e9ger.\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Les p\u00e9ch\u00e9s mortels en mati\u00e8re de s\u00e9curit\u00e9 des sites : ce que nous avons appris des statistiques du scanner de vuln\u00e9rabilit\u00e9s en un an\" src=\"\/wp-content\/uploads\/2020\/06\/3205347a3bcb19c9fd66bbb890f5096d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nToutes les vuln\u00e9rabilit\u00e9s des applications web sont divis\u00e9es par Qualys en trois niveaux de criticit\u00e9 : faible, moyenne et \u00e9lev\u00e9e. En regardant la r\u00e9partition par \"gravel\", il semble que ce ne soit pas si grave. Il y a peu de vuln\u00e9rabilit\u00e9s critiques, la plupart \u00e9tant non critiques :\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Les p\u00e9ch\u00e9s mortels en mati\u00e8re de s\u00e9curit\u00e9 des sites : ce que nous avons appris des statistiques du scanner de vuln\u00e9rabilit\u00e9s en un an\" src=\"\/wp-content\/uploads\/2020\/06\/59ec50a522270db288fb01fb8a41c7c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMais non critiques ne veut pas dire inoffensives. Elles peuvent aussi causer des dommages s\u00e9rieux.\u00a0<\/p>\n<h2>Top des vuln\u00e9rabilit\u00e9s \"non critiques\"<\/h2>\n<p><\/p>\n<ol>\n<li><b>Vuln\u00e9rabilit\u00e9s li\u00e9es au contenu mixte.<\/b>\n<p>La norme de s\u00e9curit\u00e9 des sites suppose la transmission des donn\u00e9es entre le client et le serveur via le protocole HTTPS, qui supporte le chiffrement et prot\u00e8ge les informations d'interception.\u00a0<\/p>\n<p>Certains sites utilisent <i>du contenu mixte<\/i>: ils transmettent une partie des donn\u00e9es via le protocole non s\u00e9curis\u00e9 HTTP. Plus souvent, cela concerne <i>du contenu passif<\/i> \u2013 des informations qui affectent uniquement l'affichage du site : images, styles CSS. Mais parfois, cela concerne aussi <i>du contenu actif<\/i>: des scripts qui contr\u00f4lent le comportement du site. Dans ce cas, un logiciel sp\u00e9cial peut analyser les informations provenant du serveur avec du contenu actif, modifier les r\u00e9ponses en temps r\u00e9el et forcer la machine \u00e0 fonctionner de mani\u00e8re non pr\u00e9vue par ses cr\u00e9ateurs.\u00a0<\/p>\n<p>Les navigateurs des nouvelles versions avertissent les utilisateurs que les sites avec du contenu mixte ne sont pas s\u00e9curis\u00e9s et bloquent le contenu. Les d\u00e9veloppeurs de sites re\u00e7oivent \u00e9galement des avertissements du navigateur dans la console. Par exemple, voici \u00e0 quoi cela ressemble dans <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Security\/MixedContent\">Firefox<\/a><\/noindex>:\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Les p\u00e9ch\u00e9s mortels en mati\u00e8re de s\u00e9curit\u00e9 des sites : ce que nous avons appris des statistiques du scanner de vuln\u00e9rabilit\u00e9s en un an\" src=\"\/wp-content\/uploads\/2020\/06\/e075e43f63ee6a41d41949d63da27006.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Quels sont les dangers<\/b>: Les cybercriminels utilisent un protocole non s\u00e9curis\u00e9 pour intercepter les informations de l'utilisateur, substituer des scripts et envoyer des requ\u00eates au site en son nom. M\u00eame si le visiteur du site n'a pas saisi de donn\u00e9es, cela ne le prot\u00e8ge pas contre <i>le phishing <\/i>\u2013 l'extraction d'informations confidentielles par des m\u00e9thodes frauduleuses. Par exemple, \u00e0 l'aide d'un script, il est possible de rediriger l'utilisateur vers un site non s\u00e9curis\u00e9, qui se masque sous un site familier pour l'utilisateur. Dans certains cas, le site malveillant appara\u00eet m\u00eame mieux que l'original, et l'utilisateur peut lui-m\u00eame remplir un formulaire et transmettre ses donn\u00e9es confidentielles.\u00a0<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: M\u00eame si l'administrateur du site a install\u00e9 et configur\u00e9 un certificat SSL\/TLS, une vuln\u00e9rabilit\u00e9 peut survenir en raison du facteur humain. Par exemple, si sur l'une des pages un lien absolu avec http a \u00e9t\u00e9 mis au lieu d'un lien relatif, et de plus si les redirections de http \u00e0 https ne sont pas configur\u00e9es.\u00a0<\/p>\n<p>Vous pouvez d\u00e9tecter du contenu mixte sur le site \u00e0 l'aide d'un navigateur : recherchez dans le code source de la page, lisez les notifications dans la console du d\u00e9veloppeur. Cependant, le d\u00e9veloppeur devra passer beaucoup de temps \u00e0 fouiller dans le code. Le processus peut \u00eatre acc\u00e9l\u00e9r\u00e9 par des moyens d'analyse automatis\u00e9s, par exemple : <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jitbit.com\/sslcheck\/\">SSL Check<\/a><\/noindex>, le logiciel libre Lighthouse ou le logiciel payant Screaming Frog SEO Spider.<\/p>\n<p>Une vuln\u00e9rabilit\u00e9 peut \u00e9galement survenir \u00e0 cause de probl\u00e8mes avec du code h\u00e9rit\u00e9 \u2013 du code qui a \u00e9t\u00e9 transmis. Par exemple, si certaines pages sont g\u00e9n\u00e9r\u00e9es \u00e0 partir d'un ancien mod\u00e8le qui ne tient pas compte de la transition des sites vers https.\u00a0\u00a0\u00a0\u00a0\n<\/li>\n<li><b>Cookies sans les indicateurs \u00ab HTTPOnly \u00bb et \u00ab secure \u00bb.<\/b>\n<p>L'attribut \u00ab HTTPOnly \u00bb prot\u00e8ge les fichiers cookies du traitement par des scripts que les cybercriminels utilisent pour voler des donn\u00e9es utilisateur. Le drapeau \u00ab secure \u00bb n'autorise pas la transmission des cookies en clair. L'\u00e9change de donn\u00e9es sera autoris\u00e9 uniquement si les cookies sont envoy\u00e9s via le protocole s\u00e9curis\u00e9 HTTPS.\u00a0<\/p>\n<p>Les deux attributs sont sp\u00e9cifi\u00e9s dans les propri\u00e9t\u00e9s des cookies :<\/p>\n<pre><code class=\"plaintext\">Set-Cookie: Secure; HttpOnly<\/code><\/pre>\n<p>\n<b>Quels sont les dangers<\/b>: Si le d\u00e9veloppeur du site n'a pas d\u00e9fini ces attributs, le criminel peut intercepter les informations de l'utilisateur \u00e0 partir des cookies et en faire usage. Si les cookies sont utilis\u00e9s pour l'authentification et l'autorisation, il peut pirater la session de l'utilisateur et effectuer des actions sur le site en son nom.\u00a0<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: En g\u00e9n\u00e9ral, dans les frameworks populaires, ces attributs sont d\u00e9finis automatiquement. Mais v\u00e9rifiez quand m\u00eame la configuration du serveur Web et activez l'option : Set-Cookie HttpOnly; Secure. <\/p>\n<p>L'attribut \u00ab HTTPOnly \u00bb rendra les cookies invisibles m\u00eame pour votre propre JavaScript.\u00a0\u00a0\n<\/li>\n<li><b>Vuln\u00e9rabilit\u00e9s bas\u00e9es sur les chemins.<\/b>\n<p>Le scanner signale une telle vuln\u00e9rabilit\u00e9 s'il trouve un fichier ou un r\u00e9pertoire public sur le site contenant des informations potentiellement sensibles. Par exemple, il pourrait d\u00e9tecter des fichiers s\u00e9par\u00e9s contenant la configuration du syst\u00e8me ou un acc\u00e8s \u00e0 l'int\u00e9gralit\u00e9 du syst\u00e8me de fichiers. Cela peut se produire si les droits d'acc\u00e8s ne sont pas correctement d\u00e9finis sur le site.<\/p>\n<p><b>Quels sont les dangers<\/b>: Si le syst\u00e8me de fichiers est \u00ab expos\u00e9 \u00bb, un attaquant peut acc\u00e9der \u00e0 l'interface du syst\u00e8me d'exploitation et essayer de trouver des dossiers contenant des mots de passe, s'ils sont stock\u00e9s en clair (ne le faites pas !). Il peut aussi voler des hachages de mots de passe, tenter de d\u00e9duire le mot de passe, et essayer d'\u00e9lever ses privil\u00e8ges dans le syst\u00e8me pour progresser dans l'infrastructure.\u00a0\u00a0<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: N'oubliez pas les droits d'acc\u00e8s et configurez la plateforme, le serveur Web, l'application Web pour qu'il soit impossible de \u00ab fuir \u00bb en dehors du r\u00e9pertoire Web.\n<\/li>\n<li><b>Formulaires pour saisir des donn\u00e9es sensibles avec la fonction de remplissage automatique activ\u00e9e.<\/b>\n<p>Si un utilisateur remplit souvent des formulaires sur des sites, son navigateur sauvegarde ces informations gr\u00e2ce \u00e0 la fonction de remplissage automatique.\u00a0<\/p>\n<p>Les formulaires sur les sites peuvent inclure des champs contenant des informations sensibles, comme des mots de passe ou des num\u00e9ros de cartes de cr\u00e9dit. Pour ces champs, la fonction de remplissage automatique du formulaire doit \u00eatre d\u00e9sactiv\u00e9e sur le site.\u00a0<\/p>\n<p><b>Quels sont les dangers<\/b>: Si le navigateur de l'utilisateur sauvegarde des informations sensibles, un attaquant peut les intercepter plus tard, par exemple, par phishing. En gros, le d\u00e9veloppeur Web qui oublie ce d\u00e9tail met en p\u00e9ril ses utilisateurs.\u00a0<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: Dans ce cas, nous avons un conflit classique : confort vs s\u00e9curit\u00e9. Si le d\u00e9veloppeur Web pense au confort de l'utilisateur, il peut choisir d\u00e9lib\u00e9r\u00e9ment le remplissage automatique. Par exemple, s'il est important de suivre <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/WCAG21\/\">Les Directives pour l'accessibilit\u00e9 du contenu Web<\/a><\/noindex> \u2013 recommandations pour rendre le contenu accessible aux utilisateurs ayant des handicaps.\u00a0<\/p>\n<p>Pour la plupart des navigateurs, il est possible de d\u00e9sactiver le remplissage automatique avec l'attribut autocomplete=\"off\", par exemple :<\/p>\n<pre><code class=\"plaintext\">\u00a0&lt;body&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;form action=&quot;\/fr\/form\/submit\/&quot; method=&quot;get&quot; autocomplete=&quot;off&quot; data-trp-original-action=&quot;\/form\/submit&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;text&quot; placeholder=&quot;Pr&eacute;nom&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;text&quot; id=&quot;lname&quot; placeholder=&quot;Nom de famille&quot; autocomplete=&quot;on&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;number&quot; placeholder=&quot;Num&eacute;ro de carte de cr&eacute;dit&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;submit&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;hidden&quot; name=&quot;trp-form-language&quot; value=&quot;fr&quot;\/&gt;&lt;\/form&gt;\n&nbsp;&nbsp;&lt;\/body&gt;<\/code><\/pre>\n<p>\nMais cela ne fonctionnera pas pour Chrome. On contourne cela avec JavaScript, un exemple de solution peut \u00eatre trouv\u00e9. <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/a\/55045439\">ici<\/a><\/noindex>.\u00a0\n<\/li>\n<li><b>L'en-t\u00eate X-Frame-Options n'est pas d\u00e9fini dans le code du site.\u00a0<\/b>\n<p>Cet en-t\u00eate affecte les balises frame, iframe, embed ou object. Il permet de totalement interdire l'int\u00e9gration de votre site \u00e0 l'int\u00e9rieur d'un cadre. Pour cela, il suffit d'indiquer la valeur X-Frame-Options : deny. Ou vous pouvez sp\u00e9cifier X-Frame-Options : sameorigin, ce qui permettra l'int\u00e9gration dans un iframe uniquement sur votre domaine.<\/p>\n<p><b>Quels sont les dangers<\/b>: L'absence de cet en-t\u00eate peut \u00eatre exploit\u00e9e sur des sites malveillants pour <i>le clickjacking.<\/i>Pour ce type d'attaque, un cybercriminel cr\u00e9e un cadre transparent au-dessus des boutons et trompe l'utilisateur. Par exemple, des escrocs placent dans le cadre une page de r\u00e9seaux sociaux. L'utilisateur pense qu'il clique sur un bouton sur ce site. Au lieu de cela, le clic est intercept\u00e9 et envoie la requ\u00eate de l'utilisateur vers le r\u00e9seau social o\u00f9 il a une session active. Ainsi, les malfaiteurs envoient du spam au nom de l'utilisateur ou augmentent le nombre de ses abonn\u00e9s et de ses likes.\u00a0<\/p>\n<p>Si cette possibilit\u00e9 n'est pas interdite, un malveillant peut placer le bouton de votre application sur un site nuisible. Il pourrait \u00eatre int\u00e9ress\u00e9 par votre programme de parrainage ou par vos utilisateurs.\u00a0\u00a0<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: Une vuln\u00e9rabilit\u00e9 peut appara\u00eetre si X-Frame-Options avec une valeur conflictuelle est d\u00e9finie sur le serveur web ou le r\u00e9partiteur de charge. Dans ce cas, le serveur et le r\u00e9partiteur \u00e9craseront simplement l'en-t\u00eate, car ils ont une priorit\u00e9 plus \u00e9lev\u00e9e par rapport au code backend.\u00a0\u00a0<\/p>\n<p>Les valeurs deny et sameorigin de l'en-t\u00eate X-Frame-Options peuvent interf\u00e9rer avec le fonctionnement du webvisor de Yandex. Pour autoriser l'utilisation de l'iframe pour le webvisor, il faut \u00e9crire une r\u00e8gle distincte dans les param\u00e8tres. Par exemple, pour nginx, cela peut \u00eatre configur\u00e9 comme suit :<\/p>\n<pre><code class=\"plaintext\">http{\n...\n map $http_referer $frame_options {\n \"~webvisor.com\" \"ALLOW-FROM http:\/\/webvisor.com\";\n default \"SAMEORIGIN\";\n }\n add_header X-Frame-Options $frame_options;\n...\n}\n\n<\/code><\/pre>\n<p>\n<\/li>\n<li><b>Vuln\u00e9rabilit\u00e9s PRSSI (Importation de feuille de style relative au chemin).\u00a0\u00a0<\/b>\n<p>Il s'agit d'une vuln\u00e9rabilit\u00e9 dans les styles du site. Elle se produit lorsque des liens relatifs tels que href=\"\/somefolder\/styles.css\/\" sont utilis\u00e9s pour acc\u00e9der aux fichiers de style. Un attaquant en tirerait parti s'il trouve un moyen de rediriger l'utilisateur vers une page malveillante. La page ins\u00e9rera le lien relatif dans son URL, imitant ainsi l'acc\u00e8s aux styles. Cela aboutira \u00e0 une requ\u00eate du type badsite.ru\/\u2026\/somefolder\/styles.css\/, qui, sous pr\u00e9texte de style, pourrait effectuer des actions malveillantes.\u00a0<\/p>\n<p><b>Quels sont les dangers<\/b>: Un escroc pourrait exploiter cette vuln\u00e9rabilit\u00e9 s'il trouve une autre faille de s\u00e9curit\u00e9. Cela pourrait permettre de voler des donn\u00e9es utilisateur \u00e0 partir des cookies ou des jetons.<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: D\u00e9finissez l'en-t\u00eate X-Content-Type-Options : nosniff. Dans ce cas, le navigateur v\u00e9rifiera le type de contenu pour les styles. Si le type diff\u00e8re de text\/css, le navigateur bloquera la requ\u00eate.\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Vuln\u00e9rabilit\u00e9s critiques<\/h2>\n<p><\/p>\n<ol>\n<li><b>La page contenant un champ de mot de passe est transmise par le serveur via un canal non s\u00e9curis\u00e9 (HTML form containing password field(s) is served over HTTP).<\/b>\n<p>La r\u00e9ponse du serveur sur un canal non chiffr\u00e9 est vuln\u00e9rable aux attaques de type 'Man in the Middle'. Un attaquant peut intercepter le trafic et s'immiscer entre le client et le serveur lorsque la page passe du serveur au client.\u00a0<\/p>\n<p><b>Quels sont les dangers<\/b>: Un escroc pourrait remplacer la page et envoyer \u00e0 l'utilisateur un formulaire pour des donn\u00e9es sensibles qui seront envoy\u00e9es au serveur de l'agresseur.\u00a0<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: Certains sites envoient aux utilisateurs un code temporaire par e-mail \/ t\u00e9l\u00e9phone au lieu d'un mot de passe. Dans ce cas, la vuln\u00e9rabilit\u00e9 n'est pas aussi critique, mais cela complique la vie des utilisateurs.\n<\/li>\n<li><b>Soumission de formulaire avec identifiant et mot de passe par un canal non s\u00e9curis\u00e9 (Login Form Is Not Submitted Via HTTPS).<\/b>\n<p>Dans ce cas, un formulaire avec identifiant et mot de passe est envoy\u00e9 au serveur par un canal non chiffr\u00e9.<\/p>\n<p><b>Quels sont les dangers<\/b>: Contrairement \u00e0 l'exemple pr\u00e9c\u00e9dent, il s'agit d\u00e9j\u00e0 d'une vuln\u00e9rabilit\u00e9 critique. Intercepter des donn\u00e9es sensibles est plus facile, car il n'est m\u00eame pas n\u00e9cessaire d'\u00e9crire du code pour cela.\u00a0\n<\/li>\n<li><b>Utilisation de biblioth\u00e8ques JavaScript avec des vuln\u00e9rabilit\u00e9s connues.<\/b>\n<p>Pendant la p\u00e9riode d'analyse, la biblioth\u00e8que la plus utilis\u00e9e est devenue jQuery avec une large gamme de versions. Chaque version pr\u00e9sente au moins une, voire plusieurs vuln\u00e9rabilit\u00e9s connues. L'impact peut varier en fonction de la nature de la vuln\u00e9rabilit\u00e9.<\/p>\n<p><b>Quels sont les dangers<\/b>: Pour les vuln\u00e9rabilit\u00e9s connues, il existe des exploits, par exemple :<\/p>\n<p><img decoding=\"async\" alt=\"Les p\u00e9ch\u00e9s mortels en mati\u00e8re de s\u00e9curit\u00e9 des sites : ce que nous avons appris des statistiques du scanner de vuln\u00e9rabilit\u00e9s en un an\" src=\"\/wp-content\/uploads\/2020\/06\/4e9ebec0ae735aafd28f5e6b1a806406.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: Revenez r\u00e9guli\u00e8rement au cycle : recherche de vuln\u00e9rabilit\u00e9s connues \u2013 correction \u2013 v\u00e9rification. Si vous utilisez des biblioth\u00e8ques obsol\u00e8tes de mani\u00e8re consciente, par exemple pour prendre en charge d'anciens navigateurs ou pour \u00e9conomiser un budget, recherchez la possibilit\u00e9 de corriger les vuln\u00e9rabilit\u00e9s connues.\u00a0\n<\/li>\n<li><b>Scripts intersites (XSS).\u00a0<\/b><br \/>\nLe Cross-Site Scripting (XSS) est une attaque sur une application web o\u00f9 du code malveillant appara\u00eet dans la base de donn\u00e9es. Si Qualys d\u00e9tecte une telle vuln\u00e9rabilit\u00e9, cela signifie qu'un attaquant potentiel peut avoir ins\u00e9r\u00e9 ou a d\u00e9j\u00e0 ins\u00e9r\u00e9 son script js dans le code du site pour ex\u00e9cuter des actions malveillantes.<\/p>\n<p><b>XSS stock\u00e9<\/b> est plus dangereux, car le script est inject\u00e9 sur le serveur et s'ex\u00e9cute \u00e0 chaque fois que la page compromise est ouverte dans le navigateur.<\/p>\n<p><b>XSS r\u00e9fl\u00e9chi<\/b> est plus simple \u00e0 r\u00e9aliser, car le script malveillant peut \u00eatre inject\u00e9 dans la requ\u00eate HTTP. L'application recevra la requ\u00eate HTTP, ne validera pas les donn\u00e9es, les empaquettera et les enverra imm\u00e9diatement. Si l'attaquant intercepte le trafic et ins\u00e8re un script tel que <\/p>\n<pre><code class=\"plaintext\">&lt;script&gt;\/*+\u0447\u0442\u043e+\u0442\u043e+\u043f\u043b\u043e\u0445\u043e\u0435+*\/&lt;\/script&gt; <\/code><\/pre>\n<p>\nalors une requ\u00eate malveillante sera envoy\u00e9e au nom du client.<\/p>\n<p>Un exemple frappant de XSS : des js-sniffers qui imitent des pages pour saisir le CVC, la date d'expiration de la carte, etc.\u00a0<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: Dans l'en-t\u00eate Content-Security-Policy, utilisez l'attribut script-src pour que le navigateur du client ne charge et n'ex\u00e9cute que du code provenant de sources de confiance. Par exemple, script-src 'self' met sur liste blanche tous les scripts seulement de notre site.\u00a0<br \/>\nLa meilleure pratique consiste \u00e0 utiliser le code Inline : autorisez uniquement le javascript en ligne avec la valeur unsafe-inline. Cette valeur permet l'utilisation de js\/css en ligne, mais n'interdit pas l'inclusion de fichiers js. En combinaison avec script-src 'self', nous interdisons l'ex\u00e9cution de scripts externes.<\/p>\n<p>Veillez \u00e0 enregistrer toutes les tentatives d'injection sur le site \u00e0 l'aide de report-uri.\n<\/li>\n<li><b>Injection SQL.<\/b><br \/>\nLa vuln\u00e9rabilit\u00e9 indique la possibilit\u00e9 d'injecter du code SQL sur le site, qui s'adresse directement \u00e0 la base de donn\u00e9es. L'injection SQL est possible si les donn\u00e9es utilisateur ne sont pas \u00e9chapp\u00e9es : elles ne sont pas v\u00e9rifi\u00e9es pour \u00eatre conformes et sont imm\u00e9diatement utilis\u00e9es dans la requ\u00eate. Par exemple, cela se produit si le formulaire sur le site ne v\u00e9rifie pas la correspondance des entr\u00e9es avec le type de donn\u00e9es.\u00a0<\/p>\n<p><b>Quels sont les dangers<\/b>: Si un attaquant entre une requ\u00eate SQL dans un tel formulaire, il peut faire tomber la base de donn\u00e9es ou divulguer des informations confidentielles.\u00a0<\/p>\n<p><b>Ce qu'un d\u00e9veloppeur web doit garder \u00e0 l'esprit<\/b>: Ne faites pas confiance \u00e0 ce qui vient du navigateur. La protection doit \u00eatre assur\u00e9e \u00e0 la fois c\u00f4t\u00e9 client et c\u00f4t\u00e9 serveur.\u00a0<\/p>\n<p>C\u00f4t\u00e9 client, \u00e9crivez une validation des champs \u00e0 l'aide de JavaScript.\u00a0<\/p>\n<p>Les fonctions int\u00e9gr\u00e9es dans les frameworks populaires aident \u00e9galement \u00e0 \u00e9chapper aux caract\u00e8res suspects sur le serveur. Il est \u00e9galement recommand\u00e9 d'utiliser des requ\u00eates param\u00e9tr\u00e9es pour les bases de donn\u00e9es sur le serveur.<\/p>\n<p>D\u00e9terminez exactement o\u00f9 se produit l'interaction avec la base de donn\u00e9es dans l'application web.\u00a0<\/p>\n<p>L'interaction se produit lorsque nous r\u00e9cup\u00e9rons des informations : une requ\u00eate avec un id (changement d'id), cr\u00e9ation d'un nouvel utilisateur, nouveau commentaire, \u2013 nouvelles entr\u00e9es dans la base. Des injections SQL peuvent se produire ici. M\u00eame en supprimant une entr\u00e9e de la base, une injection SQL est possible.\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Recommandations g\u00e9n\u00e9rales<\/h2>\n<p>\n<b>Ne r\u00e9inventez pas la roue \u2013 utilisez des frameworks \u00e9prouv\u00e9s<\/b>. En g\u00e9n\u00e9ral, les frameworks populaires sont plus s\u00fbrs. Pour .NET, il s'agit d'ASP.NET MVC et d'ASP.NET Core, pour Python \u2013 Django ou Flask, pour Ruby \u2013 Ruby on Rails, pour PHP \u2013 Symfony, Laravel, Yii, pour JavaScript \u2013 Node.JS- Express.js, pour Java \u2013 Spring MVC.<\/p>\n<p><b>Restez attentif aux mises \u00e0 jour du fournisseur et mettez \u00e0 jour r\u00e9guli\u00e8rement<\/b>. Une vuln\u00e9rabilit\u00e9 sera d\u00e9couverte, un exploit sera r\u00e9dig\u00e9, rendu public, et tout recommencera. Abonnez-vous aux mises \u00e0 jour des versions stables du fournisseur de logiciels.<\/p>\n<p><b>V\u00e9rifiez les droits d'acc\u00e8s<\/b>. Du c\u00f4t\u00e9 du serveur, traitez toujours votre code comme s'il avait \u00e9t\u00e9 r\u00e9dig\u00e9 par votre pire ennemi, d\u00e9sireux de casser votre site et de compromettre l'int\u00e9grit\u00e9 de vos donn\u00e9es. D'autant plus que parfois, c'est vraiment le cas.<\/p>\n<p><b>Utilisez des clones, des environnements de test, puis passez \u00e0 la production<\/b>. Cela permettra d'\u00e9viter, d'une part, des erreurs et des faux pas dans l'environnement de production : l'environnement de production g\u00e9n\u00e8re des revenus et son inactivit\u00e9 est critique. Lors de l'ajout, de la correction ou de la r\u00e9solution de probl\u00e8me, il est conseill\u00e9 de travailler dans un environnement de test, puis de v\u00e9rifier la fonctionnalit\u00e9 et les vuln\u00e9rabilit\u00e9s d\u00e9tect\u00e9es avant de planifier des op\u00e9rations dans l'environnement de production.\u00a0<\/p>\n<p><b>Prot\u00e9gez l'application web avec un <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dtln.ru\/uslugi\/security\/firewall\">Web Application Firewall<\/a><\/noindex> et int\u00e9grez les rapports du scanner de vuln\u00e9rabilit\u00e9s avec celui-ci<\/b>. Par exemple, chez DataLine, les services Qualys et FortiWeb sont utilis\u00e9s comme lien.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataline\/blog\/505274\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445. \u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u2013 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Qualys, \u043f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438. \u0417\u0430 \u0433\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u043b\u0438 291 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 \u0438 \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c \u0432 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\u00a0 \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0438\u0436\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":84185,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-84184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043c\u0435\u0440\u0442\u043d\u044b\u0435 \u0433\u0440\u0435\u0445\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430: \u0447\u0442\u043e \u043c\u044b \u0443\u0437\u043d\u0430\u043b\u0438 \u0438\u0437 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430 \u0433\u043e\u0434 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-05T17:42:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-05T17:42:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Les p\u00e9ch\u00e9s capitaux de la s\u00e9curit\u00e9 des sites web : ce que nous avons appris des statistiques du scanner de vuln\u00e9rabilit\u00e9s sur une ann\u00e9e | ProHoster","description":"Il y a environ un an, nous avons lanc\u00e9 chez DataLine un service de recherche et d'analyse des vuln\u00e9rabilit\u00e9s dans les applications IT.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043c\u0435\u0440\u0442\u043d\u044b\u0435 \u0433\u0440\u0435\u0445\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430: \u0447\u0442\u043e \u043c\u044b \u0443\u0437\u043d\u0430\u043b\u0438 \u0438\u0437 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430 \u0433\u043e\u0434 | ProHoster","og:description":"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-05T17:42:31+00:00","article:modified_time":"2020-06-05T17:42:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"84184","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:03:50","updated":"2022-09-30 12:56:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/84184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=84184"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/84184\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/84185"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=84184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=84184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=84184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}