Qu'est-ce que Cross-site scripting (XSS) ?

Vulnérabilité dans laquelle une application web insère telle quelle la saisie des utilisateurs dans le HTML, si bien qu'un script contenu dans cette saisie s'exécute dans le navigateur des visiteurs comme une page de ce site. Échapper à la sortie les caractères ayant une signification particulière est la contre-mesure fondamentale.

Nom japonais: クロスサイトスクリプティング(XSS)

« Cross-site scripting (XSS) » apparaît dans 4 questions d'entraînement réparties sur 2 thèmes, dont Bases des technologies web, Bases de la sécurité de l'information.

Domaine: Bases de la sécurité de l'information

S'entraîner : questions sur Cross-site scripting (XSS)

Quelle description d'une différence entre le localStorage du navigateur et les cookies est correcte ?

  1. ALes données du localStorage ne sont pas jointes automatiquement aux requêtes ; elles sont lues et écrites par le JavaScript des pages de la même origine
  2. BLes données du localStorage, comme les cookies, sont placées dans les en-têtes et envoyées automatiquement au serveur à chaque requête vers le même site
  3. CLe localStorage accepte aussi l'attribut HttpOnly : même si l'on y place un identifiant de session, les scripts de la page ne peuvent pas le lire
Afficher la réponse et l'explication

Réponse : A. Les données du localStorage ne sont pas jointes automatiquement aux requêtes ; elles sont lues et écrites par le JavaScript des pages de la même origine

Le localStorage est un espace de stockage du navigateur qui conserve des clés et des valeurs sous forme de chaînes, par origine ; il n'a aucun mécanisme de date d'expiration et ses données restent généralement jusqu'à leur suppression. Elles ne sont pas envoyées automatiquement au serveur : pour les envoyer, le JavaScript les place dans une requête. Un cookie est petit, en général environ 4 KB au plus chacun, et il est envoyé automatiquement à chaque requête, alors que le localStorage peut contenir des données plus volumineuses. En revanche, le JavaScript de la page peut le lire à tout moment, si bien qu'une faille XSS permet d'en voler le contenu. Ce risque doit être pris en compte lorsqu'on y place des valeurs servant à l'authentification.

Une application web de forum présentait une vulnérabilité par laquelle des scripts contenus dans des textes publiés par des utilisateurs s'exécutaient dans le navigateur des autres visiteurs. Quelle combinaison indique correctement le nom de cette vulnérabilité et sa contre-mesure fondamentale ?

  1. AInjection SQL. Allonger le mot de passe utilisé pour se connecter à la base de données
  2. BCross-site scripting (XSS). Échapper les caractères ayant une signification particulière, comme < et >, lors de la sortie des textes publiés en HTML
  3. CCross-site scripting (XSS). Chiffrer la communication entre le serveur et le navigateur avec HTTPS
Afficher la réponse et l'explication

Réponse : B. Cross-site scripting (XSS). Échapper les caractères ayant une signification particulière, comme < et >, lors de la sortie des textes publiés en HTML

Le cross-site scripting (XSS) est une vulnérabilité dans laquelle une application web insère telle quelle la saisie d'un utilisateur dans le HTML, si bien qu'un script contenu dans cette saisie s'exécute dans le navigateur des visiteurs comme une partie de la page. Comme le script s'exécute en tant que page de ce site, il peut voler les informations de session du visiteur (cookies) ou afficher de faux champs de saisie. La contre-mesure fondamentale consiste à échapper les caractères ayant une signification particulière, comme <, >, & et les guillemets, selon l'endroit où ils sont produits (par exemple en convertissant < en &lt;), afin qu'ils s'affichent comme de simples caractères. Parmi les mesures complémentaires figurent l'attribut HttpOnly sur les cookies, pour que les scripts ne puissent pas les lire, et la restriction des scripts autorisés à s'exécuter au moyen d'une Content Security Policy. HTTPS protège le canal de communication et ne peut pas empêcher l'exécution d'un script incorporé dans une page légitime.

« Cross-site scripting (XSS) » dans les explications

Questions mentionnant « Cross-site scripting (XSS) » (4)

  1. Quelle description du cookie défini par l'en-tête ci-dessus est correcte ?
  2. Quelle description d'une différence entre le localStorage du navigateur et les cookies est correcte ?
  3. Une application web de forum présentait une vulnérabilité par laquelle des scripts contenus dans des textes publiés par des utilisateurs s'exécutaient dans le navigateur des autres visiteurs. Quelle combinaison indique correctement le nom de cette vulnérabilité et sa contre-mesure fondamentale ?
  4. Une application web présente une vulnérabilité : si un utilisateur connecté ouvre une page piège préparée par un attaquant, son navigateur envoie au site légitime des requêtes qu'il n'a pas voulues, comme un virement ou une modification de paramètres. Quelle contre-mesure est appropriée ?

Termes associés

Cookie (cookie HTTP) Attaque zero-day (attaque du jour zéro) Authentification multifacteur (MFA) Code d'authentification de message Cryptographie à clé publique (cryptographie asymétrique) Cryptographie symétrique (cryptographie à clé secrète) Fonction de hachage Hameçonnage (phishing) Ingénierie sociale (social engineering) Injection SQL

Retour au glossaire