Exercice Sécurisation App Web – Cours 12 (2026)

PARTIE 1: Gestion d’environnement infonuagique

Exercice 1

Configurer une clé SSH et déployez un serveur Ubuntu sur Digital Ocean qui utilise cette clé. Connectez-vous au serveur avec Putty en utilisant la clé créée.

Exercice 2

Créer un répertoire sous /root/revision_finale. En utilisant VI, créez un fichier texte “exercice2.txt” qui contient les lignes suivantes:

  • Erreur : Espace disque insuffisant
  • Avertissement: Plusieurs tentatives de connexion effectuées sur le compte admin
  • Erreur : La dernière mise à jour à échouée

Sauvegarder et quitter, puis complétez la commande suivante afin d’extraire les lignes qui contiennent le mot “Erreur” et qui les envoi dans le fichier “erreur.txt”. Chaque “*” est un caractère à remplacer.

  • cat exercice2.txt | **** erreur * erreur.txt

Exercice 3

Retourner dans le répertoire parent et effectuer une suppression du répertoire “revision_finale” en incluant tout son contenu

Partie 2: Sécurité de la communication serveur

Exercice 4

Toujours sur le même serveur, installer Apache et vérifier que la page web par défaut fonctionne correctement.

Exercice 5

Configurer le pare-feu de Linux afin qu’il n’autorise uniquement que le protocole SSH et activez le. Assurez-vous que la page web n’est plus visible.

Partie 3: Automatisation des tâches de surveillance et nettoyage

Exercice 6

Créez des crons qui s’exécute aux fréquences demandées:

  • Le 15 du mois, uniquement de juin à août
  • Les samedi et dimanche à toutes les heures
  • Une fois dans l’année (jour de votre choix), à midi, mais uniquement les années bisextiles
  • Du lundi au vendredi à 14h, et le samedi et dimanche à 10h30

Exercice 7

Créez une base de données “revision_finale” dans PHPMyAdmin et créez une table “client”

  • prenom (texte)
  • nom (texte)
  • date_heure_derniere_connexion (datetime)
  • actif (texte: oui ou non)

Créez un script PHP qui change “actif” à “non” pour tous les clients dont la date de dernière connexion remonte à un an ou plus.

Partie 4: Sécurité des utilisateurs

Exercice 8

Sur le serveur, créez un nouvel utilisateur “demo” avec le mot de passe “querty” en vous assurant qu’un répertoire personnel lui soi créé.

Exercice 9

Donnez un plein accès sudoer à “demo” et assurez-vous qu’il soit maintenant capable d’installer MariaDB.

Exercice 10

Assurez-vous d’installer une nouvelle politique de mot de passe qui oblige que les nouveaux mots de passe contiennent au moins 10 caractères ainsi que 3 types de caractères différents. Tentez de changer le mot de passe de “demo” pour vous assurez que le tout fonctionne correctement.

Exercice 11

Créez un groupe “revision” et un fichier “demo.log” à la racine du système de fichier. Assurez-vous que seul “demo” (en tant que propriétaire) et les membres du groupe “revision” aient accès à modifier le fichier “demo.log”. Les autres ne doivent uniquement que pouvois le lire. Créez un nouvel utilisateur “demo_restreint” qui ne fera pas parti du groupe “revision” afin de confirmer le bon fonctionnement.

Partie 5: Sécurité du code

Exercice 12

Observez le code suivant et corrigez-le pour vous assurez qu’il ne soit pas vulnérable aux injections SQL:

<?php

$conn = new mysqli("localhost", "root", "", "ma_base");

$username = $_POST["username"];
$password = $_POST["password"];

// insérées dans la requête SQL.
$sql = "SELECT * FROM users
        WHERE username = '$username'
        AND password = '$password'";

$result = $conn->query($sql);

if ($result && $result->num_rows > 0) {
    echo "Connexion réussie !";
} else {
    echo "Nom d'utilisateur ou mot de passe incorrect.";
}
?>

Exercice 13

Observez le code suivant et corrigez- le pour s’assurer qu’il ne soit pas vulnérable au XSS:

<?php

$name = $_GET["name"];

echo "<h1>Bonjour $name !</h1>";

?>

Partie 6: Sécurité des mécanismes d’authentification

Exercice 14

Créez un exemple de code qui effectue l’authentification d’un utilisateur basé sur un code utilisateur et un mot de passe fournit par un formulaire de connexion. Le tout, de façon sécuritaire. Vous devez également créé une base de données qui contiendra les information de connexion nécessaire à son bon fonctionnement.

Exercice 15

Créez un exemple de code qui permet de protéger une page du site qui ne doit uniquement être accessible que par les gens authentifiés

Exercice 16

Créez un exemple de code qui permettrait de faire la déconnexion de la session utilisateur de facon sécuritaire