WordPress et Cross-Site Scripting (XSS)

Publié: 2022-11-02

Les attaques de scripts intersites sont l'un des types d'attaques de sites Web les plus courants observés sur Internet. Comprendre ce qu'ils sont et comment s'en protéger est essentiel pour garantir la sécurité de votre site Web, de vos visiteurs et de votre entreprise. Poursuivez votre lecture pour en savoir plus!

Qu'est-ce qu'une attaque de type "Cross-Site Scripting" ?

Une attaque de type "Cross-Site Scripting" (plus communément appelée attaque XSS) se produit lorsqu'un morceau de code malveillant (normalement JavaScript) est injecté dans une page Web avec l'intention de nuire à l'utilisateur final.

Ce code est généralement inséré à la fin de l'URI (Uniform Resource Identifier) ​​en tant que paramètre ou en utilisant une application Web sur une page Web, telle qu'un formulaire de saisie utilisateur. Le code malveillant sera normalement conçu pour passer outre le contrôle d'accès et manipuler les fonctionnalités du site Web.

Vulnérabilité de script intersite

Comme nous l'avons vu, une attaque XSS est une attaque Web qui utilise un code malveillant pour accéder à un site Web vulnérable et entreprendre des activités nuisibles. Le mot clé dans cette phrase est « vulnérable ». Cela (malheureusement !) peut signifier beaucoup, beaucoup de choses. Un site Web WordPress qui utilise « admin » et « 123456 » comme nom d'utilisateur et mot de passe est vulnérable, même si toutes les autres précautions de sécurité ont été prises. Les sites Web WordPress exécutant des plugins obsolètes pourraient être considérés comme vulnérables. Ou même une application Web qui inclut la saisie de l'utilisateur dans un formulaire et ne valide pas ou n'encode pas les valeurs soumises serait considérée comme vulnérable.

Les pirates qui déploient des attaques XSS sont constamment à la recherche de vulnérabilités qu'ils peuvent exploiter. Ceux que l'on trouve le plus souvent et qui ouvrent donc plus de sites Web à attaquer sont naturellement favorisés, mais les pirates rechercheront des vulnérabilités plus obscures afin d'attaquer les sites Web qu'ils considèrent comme ayant une grande valeur pour eux en tant que pirates.

Hébergez votre site web avec Pressidium

GARANTIE DE REMBOURSEMENT DE 60 JOURS

VOIR NOS FORFAITS

Le fait qu'il existe tant de vulnérabilités potentielles et toutes sortes de types d'attaques rend l'identification des points faibles potentiels et l'atténuation des attaques une tâche délicate.

Sites Web cibles

Un serveur ou client de messagerie Web, un système CRM / ERP, une page de profil accessible au public (comme celles que l'on voit couramment sur les sites de médias sociaux et les groupes de membres) ne sont que quelques types de sites Web et d'applications qui constituent d'excellentes cibles pour les attaques XSS. .

D'autres sites généralement vulnérables sont ceux où les utilisateurs peuvent publier du texte au format HTML que d'autres peuvent voir, comme dans les forums ou les champs de commentaires.

Types de scripts intersites

Les attaques dites cross-site scripting (XSS) peuvent être décomposées en trois types principaux selon que le code injecté s'exécute sur le serveur ou uniquement dans le navigateur de la personne qui tente l'attaque. Ceux-ci sont les suivants :

  • Le XSS persistant (ou stocké), où le code injecté par l'attaquant est stocké en permanence sur le serveur.
  • Le XSS non persistant (ou réfléchissant), où l'attaque est effectuée via une URL spécialement conçue que l'utilisateur final est amené à utiliser.
  • Le XSS basé sur le DOM (ou XSS côté client) qui, comme tous les autres types, est également exécuté à l'intérieur du navigateur du visiteur, à la différence qu'il modifie le DOM du site.

Impact du Cross-Site Scripting XSS

L'impact que toute attaque XSS peut avoir varie en fonction d'une série de facteurs. L'un des plus importants sera la sensibilité des données stockées et ciblées par une attaque. Les commentaires sur un forum sur la cuisine sont clairement moins sensibles que les secrets détenus sur un site Web du gouvernement national !

Généralement, la cible d'une attaque XSS est une personne qui utilise un site Web ou une application. Selon le type d'attaque et le script injecté, l'attaquant peut voler les cookies de session de la victime et des données personnelles telles que les identifiants d'accès. Une attaque peut également tenter de récupérer des informations sensibles telles que les données de carte de crédit (en supposant qu'elles soient présentes).

Ce qui est particulièrement horrible avec les attaques XSS, c'est qu'elles sont effectivement masquées… ainsi, l'utilisateur ciblé peut apparaître comme la personne qui pourrait causer des dommages malveillants alors qu'il y a de fortes chances qu'il n'ait aucune idée que quelque chose ne va pas.

De toute évidence, l'impact de cela peut être important sur une entreprise. Tout piratage qui endommage un site Web et révèle potentiellement des informations sensibles est une mauvaise nouvelle. La gravité de l'attaque dépendra de la gravité de l'attaque et de l'impact sur vos clients.

Protégez votre site WordPress des attaques XSS

Les sites Web WordPress subissent leur juste part d'attaques XSS. Cela est dû en partie au grand nombre de sites alimentés par WordPress (actuellement 43,1 % dans le monde). C'est aussi à cause des nombreuses vulnérabilités XSS que possèdent de nombreux plugins WordPress. À son tour, cela signifie, statistiquement parlant, que plus il y a de plugins utilisés sur un site Web WordPress, plus il y a de chances de subir une attaque XSS.

Pour cette raison, généralement, tout ce dont vous avez besoin pour réduire au minimum la vulnérabilité XSS de votre site Web WordPress est de valider et de nettoyer toute variable qui pourrait être incluse dans une URL de l'attaquant. Voici quelques conseils génériques ainsi que d'autres solutions plus spécialisées que vous pouvez appliquer à votre site afin de le protéger.

Tiens-toi à jour!

Il est extrêmement crucial pour la sécurité de votre site Web de vous assurer que vos fichiers, plugins et thèmes principaux sont à jour avec leur dernière version. Ce faisant, vous réduisez le risque de toutes les formes d'attaques sur votre site Web, notamment les attaques XSS.

Pour plus de détails sur les mesures générales que vous pouvez prendre pour protéger votre site Web WordPress, assurez-vous de consulter notre article, Comment sécuriser votre site Web WordPress.

Déployez le plugin 'Prevent XSS Vulnerability'

Peut-être sans surprise (car il s'agit de WordPress), un plugin a été développé qui peut aider à réduire le risque d'attaques XSS. Cela s'appelle "Prévenir la vulnérabilité XSS"

Cross site scripting - Empêcher le plug-in de vulnérabilité XSS

Une fois que vous avez installé et activé le plugin, accédez à sa page de paramètres, sous l'élément de menu "Reflected Cross-site scripting (XSS)" qui apparaîtra.

Le plug-in Prevent XSS configure par défaut une plage d'entités bloquées à partir de l'URL. Cela aide à arrêter les attaques dans leur élan. En plus des paramètres par défaut, vous pouvez spécifier d'autres entités dont vous souhaitez bloquer l'URL.

Il en va de même pour les entités que le plugin encode dans l'URL. Vous pouvez exclure les entités que vous ne souhaitez pas voir encodées dans la zone de texte fournie en les séparant par une virgule.

Il sécurise également les vulnérabilités en échappant le code HTML dans le paramètre $_GET. Par conséquent, si quelqu'un essaie d'injecter du HTML dans l'URL, cela ne fonctionnera pas.

Il est très important lorsque vous avez installé le plugin et fini de régler les paramètres que vous vérifiez au moins quelques pages au hasard pour vous assurer que votre site Web fonctionne comme il se doit. Ceci est particulièrement important si vous utilisez WooCommerce. Dans ce cas, assurez-vous de suivre l'intégralité du processus de paiement (y compris le paiement) pour vous assurer que cela fonctionne.

Protection des données de sortie

À l'exception de la validation de l'entrée lorsqu'elle est reçue d'un visiteur, vous devez également encoder toutes les réponses HTTP qui génèrent les données. Concrètement, cela signifie que chaque caractère doit être converti en son nom d'entité HTML.

Si vous êtes un développeur WordPress, il existe un excellent manuel sur l'échappement des données de sortie qui vaut la peine d'être lu.

Protection contre les attaques XSS avec Pressidium

Si vous hébergez avec Pressidium, vous bénéficierez automatiquement de la protection de notre couche de pare-feu d'application Web gérée qui protégera votre site Web de plusieurs façons, y compris les attaques XSS. Cela vous permet de vous concentrer uniquement sur votre entreprise sans vous soucier de votre site Web. En savoir plus sur les fonctionnalités de la plateforme Pressidium ici.