Par Ass Serge KIKOBYA L1 - ISIG-GOMA
Transcription
Par Ass Serge KIKOBYA L1 - ISIG-GOMA
1 ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE INSTITUT SUPERIEUR D’INFORMATIQUE ET DE GESTION Goma, le …/…/20.. 1ère Année de Licence (L1IG) Ass. Serge KIKOBYA I.S.I.G EXAMEN DE PROGRAMMATION WEB-2 1ère SESSION N° 1. Labelle-1 POINTS /5 Labelle-2 Donnez les rôles de ces ensembles des technologies de développement de page web et pour chacune, donnez-en un morceau de code d’exemple : a) HTML b) CSS c) JAVASCRIPT d) PHP e) MYSQL REPONSE 2. POINTS A. On veut créer un forum élémentaire : il y a une seule page contenant les messages du forum (un seul thread) et chaque message comporte un texte, une référence à un utilisateur, et une estampille temporelle (timestamp) du moment où ce message a été posté. Un utilisateur a un identifiant, un mot de passe, une adresse e-mail et, de manière optionnelle, une URL pointant vers une page Web personnelle. 1. Imaginer un schéma de base de données relationnelle adaptée à cette application (Diagramme de classe permettant de créer les tables correspondantes dans l'outil en ligne de commande ou dans l'interface phpMyAdmin). /15 2. Créer des interfaces utilisateurs (page web) pour peupler cette base de données avec quelques utilisateurs (add_user.php) et messages (add_message.php) d'exemple. 3. Créer une page PHP all_message.php listant l'ensemble des messages, triés par date (le plus récent d'abord). 4. Ecrire un script update_user.php permettant de modifier un utilisateur. 5. Ecrire un script delete_user.php permettant de supprimer un utilisateur. 6. Ecrire un script find_message.php permettant de retrouver tous les messages de l’utilisateur recherché. B. Authentification 7. Ajouter une page form_login.html avec un formulaire demandant le login et mot de passe. L'action de ce formulaire pointe vers un script login.php. 8. Ecrire le script login.php. Si les identifiants et mots de passe sont correcte, on stocke le nom de l'utilisateur dans une variable de session et on redirige (avec header("Location: forum.php");) vers la page du forum sinon, on redirige vers le formulaire d'identification (login.php). 9. Modifier forum.php pour contrôler que l’utilisateur qui arrive sur cette zone est bien connecté; sinon, on redirige vers le formulaire 2 d'identification. Donc faire en sorte que l'utilisateur postant le message soit bien l'utilisateur connecté. 10. Ajouter une fonctionnalité de déconnexion. REPONSE NOTE DE COURS : Hacking des applications Web Cette partie mise de vous faire comprendre sur les failles de sécurité applicatives, en quoi elles sont très différentes des failles de sécurité réseau. Et surtout de se focaliser sur la façon dont on les résout. On va se fonder sur un ensemble des failles qui sont recueillis par un groupe de sécurité qui s’appelle OWASP (Open Web Application Security and Project) et qui tous les trois ans établit une liste des failles de sécurités applicative dont la plus célèbre est l’injection SQL (elle consiste essentiellement à s’introduire dans une application web directement dans sa partie BD en utilisant les champs de formulaire dont les contenus sont incorrectement validés et incorrectement transmis à la base des données. C’est ce type d’injections qui a permis, il y a quelques années aux Hackers de voler cinquante millions de numéro de cartes de crédit dans une application de commerce électronique, sur une durée de 17 mois. Donc, le but de cette partie est de savoir modifier son code pour vérifier que la faille est devenue inopérante. Tenez en compte quand vous répondez aux questions ci-haute. Bonne chance à tous