Attaques & vulnérabilités techniques

Cross-Site Scripting (XSS)

Julien THÉRIN

Le XSS (Cross-Site Scripting) est une vulnérabilité qui permet à un attaquant d'injecter du code JavaScript malveillant dans les pages vues par d'autres utilisateurs.

Le Cross-Site Scripting, abrégé XSS, est une vulnérabilité web qui permet à un attaquant d’injecter des scripts malveillants dans des pages consultées par d’autres utilisateurs. Contrairement à l’injection SQL qui cible la base de données, le XSS cible directement les navigateurs des visiteurs.

Les trois types de XSS

On distingue trois formes principales :

  • XSS réfléchi : le script malveillant est inclus dans l’URL et renvoyé tel quel par le serveur. L’attaquant doit inciter la victime à cliquer sur un lien piégé.
  • XSS stocké : le script est enregistré dans la base de données (commentaire, formulaire de contact) et exécuté à chaque consultation. C’est la forme la plus dangereuse pour WordPress.
  • XSS basé sur le DOM : la manipulation se fait côté client, via le JavaScript existant sur la page, sans passer par le serveur.

Impact du XSS sur un site WordPress

Un XSS stocké sur un site WordPress peut avoir des conséquences graves :

  • Vol de cookies de session et détournement de session menant à une prise de contrôle de comptes administrateurs
  • Redirection silencieuse des visiteurs vers des sites malveillants
  • Affichage de faux formulaires de connexion pour voler des identifiants (hameçonnage)
  • Installation d’un backdoor si un administrateur connecté consulte la page infectée
  • Collecte de données personnelles des visiteurs (keylogging, formulaires)

Prévention du XSS dans WordPress

WordPress intègre des fonctions d’échappement natives (esc_html(), esc_attr(), wp_kses()) que tout développeur doit utiliser lors de l’affichage de données. Pour protéger votre site :

  • Maintenir tous les plugins à jour – les XSS sont fréquemment corrigés dans les mises à jour de sécurité
  • Configurer une Content Security Policy (CSP) pour limiter les sources de scripts autorisées
  • Activer un WAF qui détecte et bloque les tentatives d’injection de scripts
  • Désactiver les commentaires si non utilisés, ou activer une modération stricte

Questions fréquentes

Le Cross-Site Scripting (XSS) est une attaque qui consiste à injecter du code JavaScript malveillant dans une page web pour qu’il s’exécute dans le navigateur d’autres utilisateurs. Il peut permettre de voler des sessions via un détournement de session, rediriger des visiteurs ou afficher du contenu frauduleux.

Le XSS réfléchi nécessite que la victime clique sur un lien piégé contenant le script dans l’URL ; l’effet est immédiat mais limité à cette session. Le XSS stocké est plus dangereux : le script est sauvegardé en base de données et s’exécute automatiquement pour tous les visiteurs qui consultent la page infectée.

WordPress fournit des fonctions d’échappement (esc_html, esc_attr, wp_kses) que les développeurs doivent utiliser systématiquement lors de l’affichage de données dynamiques. Les plugins tiers obsolètes qui n’utilisent pas ces fonctions peuvent introduire des failles XSS.

Sources

  • OWASP – définition et types d’attaques XSS
Avatar Julien THERIN
Julien THÉRIN

Entrepreneur passionné du web, ma relation avec WordPress commence il y a plus de 15 ans - par curiosité, en autodidacte. À l'époque je m'intéressais à plusieurs CMS : DotClear, CMS Made Simple, SPIP, Joomla... C'est WordPress qui l'a emporté…

À propos de l'auteur →
Retour en haut