QCM Javascript – Partie 39

QCM sur Javascript avec des réponses pour la préparation des tests techniques, des tests en ligne, aux examens et aux certifications. Ces questions et réponses sont tirés d’un vrai entretien écrit et certaines parties sont en direct.
 
 

1. Qu’est-ce que le Cross-Site Scripting (XSS) dans le contexte de la sécurité web ?

A Le vol de cookies et de jetons de session

B L’injection de scripts malveillants dans les pages web consultées par d’autres utilisateurs

C S’introduire dans des bases de données par le biais de l’interface web

D Désactiver des sites web par des attaques par déni de service

B
Le Cross-Site Scripting (XSS) est une faille de sécurité qui permet à un pirate d’injecter des scripts malveillants dans des pages web consultées par d’autres utilisateurs, ce qui peut entraîner le vol de données ou l’usurpation de l’identité de l’utilisateur.

 

2. Qu’est-ce que la politique de sécurité du contenu (CSP – Content Security Policy) et comment contribue-t-elle à la sécurité du web ?

A Une politique qui limite les types de contenu pouvant être chargés sur une page web afin de prévenir les attaques XSS.

B Une configuration de serveur qui crypte toutes les données quittant un site web

C Une fonction JavaScript qui valide les données saisies par l’utilisateur sur une page web

D Protocole de communication sécurisée entre un site web et sa base de données

A
Content Security Policy (CSP) est une mesure de sécurité qui aide à prévenir les attaques de type Cross-Site Scripting (XSS) et d’injection de données en spécifiant les sources de contenu approuvées que les navigateurs doivent autoriser à charger sur une page web.

 

3. En quoi le code JavaScript suivant peut-il constituer un risque pour la sécurité ?
document.write(userInput); //Où userInput est une valeur entrée par l'utilisateur

A Il peut conduire à un XSS si userInput n’est pas correctement analysé.

B Il peut ralentir le site web

C Il peut écraser des données importantes

D Il peut rendre le site indisponible

A
L’utilisation de document.write pour rendre l’entrée de l’utilisateur directement sur la page peut conduire à des attaques de type Cross-Site Scripting (XSS) si l’entrée n’est pas correctement analysée, car elle peut inclure des scripts malveillants.

 

 
 

4. Quel problème de sécurité ce code présente-t-il et comment peut-il être résolu ?
let userData = JSON.parse(localStorage.getItem('userData'));

A Le code peut exécuter un JavaScript malveillant à partir de localStorage, ce qui peut être évité en validant et en nettoyant les données avant de les utiliser.

B Les données peuvent être obsolètes, ce qui entraîne des problèmes de performance.

C Le code peut être bloqué par les paramètres de sécurité du navigateur

D Le code expose les données de l’utilisateur dans le champ d’application global

A
Le stockage des données de l’utilisateur dans localStorage peut être risqué si les données comprennent du code JavaScript exécutable. Elles doivent être validées et nettoyées avant d’être analysées ou utilisées dans l’application.

 

5. Identifiez la faille de sécurité dans cet extrait de code :
let username = document.querySelector('#username').value;
if (username.length < 3) {
   alert('username trop court');
}

A Vulnérabilité potentielle de type Cross-Site Scripting

B Mauvaise validation de la longueur du nom d'utilisateur

C Absence de cryptage du nom d'utilisateur

D Aucune faille de sécurité

A
Si le nom d'utilisateur est tiré d'une entrée utilisateur sans échappatoire ou analyse appropriée, il pourrait être utilisé pour une attaque XSS, en particulier si le nom d'utilisateur est ensuite rendu dans le DOM.

 

6. Identifiez la faille de sécurité dans cet extrait de code :
fetch('https://api.example.com/data', {
  credentials: 'include'
})
.then(response => response.json())
.then(data => console.log(data));

A Il autorise le partage de ressources entre origines (CORS) sans vérifications appropriées.

B Il envoie des informations d'identification sans vérifier le type de réponse

C Il n'y a pas de gestion des erreurs pour la requête "fetch".

D Les données de la réponse sont affichées, ce qui peut constituer un risque pour la sécurité.

A
L'utilisation des informations d'identification: "credentials: 'include'" avec fetch peut poser un risque de sécurité, car il envoie les informations d'identification de l'utilisateur avec la requête. Il convient de l'utiliser avec précaution, en particulier si le serveur dispose de paramètres CORS appropriés.

 

 
 

7. Que sont localStorage et sessionStorage dans le développement web ?

A Mécanismes de stockage côté serveur

B Mécanismes de stockage basés sur les cookies

C Mécanismes de stockage côté client qui stockent les données localement dans le navigateur de l'utilisateur

D Solutions de stockage en base de données fournies par le navigateur

C
localStorage et sessionStorage font partie de l'API de stockage Web et fournissent des mécanismes de stockage de paires clé-valeur côté client, de manière persistante pour localStorage et pour la durée de la session dans sessionStorage.

 

8. Quelle est la principale différence entre localStorage et sessionStorage ?

A localStorage est plus grand que sessionStorage

B localStorage conserve les données pendant les sessions du navigateur, tandis que sessionStorage les efface à la fin de la session.

C sessionStorage est plus sécurisé que localStorage

D localStorage peut stocker des types de données complexes, ce qui n'est pas le cas de sessionStorage

B
La principale différence réside dans la persistance des données: localStorage stocke les données sans date d'expiration, tandis que sessionStorage stocke les données pour une session et est effacé lorsque l'onglet du navigateur est fermé.

 

9. Comment rendre le stockage sur le web plus sécurisé contre les attaques XSS ?

A En chiffrant les données stockées dans le stockage web

B En utilisant des cookies au lieu du stockage sur le web

C En ne stockant que des données non sensibles dans le stockage web

D En limitant la taille des données stockées

C
Pour sécuriser le stockage web contre les attaques XSS, il est recommandé de ne stocker que des données non sensibles et de procéder à la validation et à la vérification des données lors de la lecture et de l'écriture dans le stockage web.

 

 
 

10. Que fait ce code ?
localStorage.setItem('user', 'Bob');
console.log(localStorage.getItem('user'));

A Récupère les données d'un utilisateur sur le serveur.

B Enregistre l'utilisateur "Bob" dans la mémoire de session et l'affiche.

C Enregistre l'utilisateur "Bob" dans la mémoire locale et l'affiche.

D Crée un cookie nommé "user" avec la valeur "Bob".

C
Ce code enregistre la chaîne "Bob" sous la clé "user" dans localStorage, puis affiche la valeur de "user" dans localStorage.

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *