💡 Ce guide est une synthèse du module JavaScript Essentials de TryHackMe, destiné aux débutants souhaitant comprendre les bases du JavaScript sous l’angle de la cybersécurité. Il couvre les concepts fondamentaux, l’intégration du JS dans le HTML, les fonctions de dialogue, le contournement des structures de contrôle, l’obfuscation, et les bonnes pratiques.
var, let, conststring), nombres (number), booléens (boolean), objets (object), tableaux (array)let age = 25;
let nom = "Alice";
function saluer(personne) {
console.log("Bonjour, " + personne + " !");
}
saluer(nom); // Affiche : "Bonjour, Alice !"
Les fonctions sont des blocs de code conçus pour effectuer une tâche spécifique.
function afficherRésultat(numÉlève) {
alert("L'élève numéro " + numÉlève + " a réussi l'examen");
}
Permettent d’exécuter un bloc de code plusieurs fois tant qu’une condition est vraie.
for (let i = 0; i < 100; i++) {
afficherRésultat(numÉlève[i]);
}
Le navigateur (client) envoie une requête au serveur, qui répond avec les données demandées (page web, données, etc.).
JavaScript s’exécute principalement côté client, permettant une interaction directe avec le HTML via le navigateur.
Ctrl + Shift + I (Windows) ou Cmd + Option + I (Mac)let x = 5;
let y = 10;
let résultat = x + y;
console.log("Le résultat est : " + résultat);
Le code JS est inclus directement dans le fichier HTML.
<script>
let x = 5;
let y = 10;
let résultat = x + y;
document.getElementById("résultat").innerHTML = "Le résultat est : " + résultat;
</script>
Le code JS est placé dans un fichier séparé et lié au HTML via l’attribut src.
<script src="script.js"></script>
Cela favorise la réutilisation du code et une meilleure organisation.
Les fonctions alert(), prompt() et confirm() peuvent être exploitées à des fins malveillantes, comme le phishing.
alert("Attention : Zone sécurisée !");
let nomUtilisateur = prompt("Entrez votre nom :");
if (nomUtilisateur) {
alert("Bienvenue, " + nomUtilisateur);
}
let confirmation = confirm("Acceptez-vous les conditions ?");
if (confirmation) {
alert("Merci pour votre accord.");
} else {
alert("Vous n'avez pas accepté.");
}
Les structures conditionnelles (if-else, switch) et les boucles peuvent être manipulées pour modifier le comportement du programme.
if-elselet âge = prompt("Entrez votre âge :");
if (âge >= 18) {
console.log("Adulte");
} else {
console.log("Mineur");
}
switchlet jour = prompt("Entrez un jour (1-7) :");
switch(jour) {
case '1':
alert("C'est lundi !");
break;
case '2':
alert("C'est mardi !");
break;
default:
alert("Jour non valide.");
}
Les fichiers JS peuvent être minifiés ou obfusqués pour réduire leur taille ou masquer leur logique.
Suppression des espaces, commentaires, etc., pour réduire la taille du fichier.
Transformation du code pour le rendre difficile à lire, tout en conservant sa fonctionnalité.