Vous êtes sur la page 1sur 81

MINISTERE DE LENSEIGNEMENT SUPERIEUR DE LA RECHERCHE SCIENTIFIQUE ET DE LA TECHNOLOGIE

UNIVERSITE TUNIS AL MANAR

Code : SSICE24

MEMOIRE DE MASTERE Prsent en vue de lobtention du Mastre Professionnel en Informatique Spcialit : Scurit des Systmes Informatiques communicants et Embarqus (SSICE)

Conception et dveloppement dune application web scurise

Ralis par :

Marwa SFARI
Encadr par :
Monsieur Mejdi CHEBBI Madame Sonia BEN REJEB CHAOUCH Directeur adjoint Matre-Assistante

Socit daccueil HedylSystems


Anne Universitaire 2012/2013

Ddicaces
Avant tout, mes vifs remerciements sont destins DIEU qui ma guide et tant protge. A ma mre Leila Pour tous les sacrifices quelle ma prodigue, toute la confiance quelle maccorde et tout lamour dont elle mentoure en tmoignage de mon profond amour et de mon incontestable reconnaissance. A mon pre Khaled Qui a attendu avec patience les fruits de sa bonne ducation, Je ferais de mon mieux pour rester un sujet de fiert ses yeux avec Lespoir de ne jamais le dcevoir. A mon frre et mes surs Mohamed Ali, Manel et Malek en leurs esprant le plein succs et le bonheur dans leur vie en gage de mon grand amour et respect. A mes trs chers amis Merci !!!

Marwa,

Remerciement

Nous exprimons notre gratitude toutes les personnes qui nous ont aids accomplir notre tche dans de bonnes conditions et qui ont su nous accorder toute lattention ncessaire pour laborer le prsent travail malgr leurs emplois de temps fort chargs. Nous tenons remercier notre encadreur du centre Monsieur Mejdi CHEBBI, directeur adjoint chez HedylSystems, pour son aide, ses conseils prcieux, ses critiques constructives et ses suggestions pertinentes qui ont t remarquables tout au long de notre stage. Nous adressons aussi nos remerciements les plus sincres Madame Sonia BEN REJEB CHAOUCH, matre assistante lISI, qui, malgr ses multiples engagements, a accept de se mettre notre service en dirigeant avec dextrme magnanimit notre travail. Finalement, Nous exprimons nos sincres reconnaissances lgard de tous ceux qui ont contribu notre formation, particulirement les enseignants de lInstitut Suprieur dinformatique.

Table des matires

Introduction gnrale ................................................................................................................ 1 Chapitre I : Cadre du travail et tude de lexistant ................................................................ 3 I. Introduction ................................................................................................................. 4 II. Prsentation de lorganisme daccueil ........................................................................ 4 II.1. Prsentation ......................................................................................................... 4 II.2. Organisation gnrale .......................................................................................... 5 III. Prsentation du travail ................................................................................................ 5 III.1. Description du projet ........................................................................................... 5 III.2. Objectif de projet ................................................................................................. 6 IV. Etude de lexistant ....................................................................................................... 7 V. Spcification des besoins ............................................................................................. 7 VI. solution propose ........................................................................................................ 8 VII. Conclusion .............................................................................................................. 10

Chapitre II : Etude des applications web .............................................................................. 11 I. Introduction ............................................................................................................... 12 II. Les Application web ................................................................................................... 12 II.1. dfinition ........................................................................................................... 12 II.2. Technique de base............................................................................................. 12 III. Scurit des applications web ................................................................................... 13 III.1. Les bases de la scurit des applications Web ................................................. 13 III.2. Types de vulnrabilits des applications Web .................................................. 13 IV. Les langages de programmation ............................................................................... 15 IV.1. Les langages serveur.......................................................................................... 15 IV.2. Les langages clients ........................................................................................... 17 V. Les Outils de dveloppements .................................................................................. 18 V.1. Les Framework .................................................................................................. 18 V.2. Les diteurs ....................................................................................................... 21 VI. Conclusion ................................................................................................................. 22

Chapitre III : Etude conceptuelle .......................................................................................... 23 I. Introduction ............................................................................................................... 24

II. Choix du modle de conception ................................................................................ 24 III. Dfinition du Langage UML ....................................................................................... 24 IV. Diagramme de cas dutilisation ................................................................................. 25 IV.1. Identification des acteurs du systme .............................................................. 25 IV.2. Cas dutilisation ................................................................................................. 26 IV.2.1 Diagramme de cas dutilisation ...................................................................... 26 IV.2.2 Description textuelle ...................................................................................... 26 V. Diagramme de classe ................................................................................................. 27 V.1. Dfinition ........................................................................................................... 27 V.2. Diagramme de classe......................................................................................... 27 VI. Diagramme de squence ........................................................................................... 28 VI.1. Dfinition ........................................................................................................... 28 VI.2. Diffrents diagrammes de squence ................................................................ 29 VI.2.1 Authentification ............................................................................................ 29 VI.2.2. Passage dvaluation ................................................................................ 30 VI.2.3. Cration dvaluation ............................................................................... 31 VI.2.4. Gestion de cours....................................................................................... 32 VI.2.5. Gestion de groupes .................................................................................. 33 VI.2.6. Gestion de sances................................................................................... 33 VII. Conclusion .............................................................................................................. 34

Chapitre IV : Dveloppement dune application web scurise .......................................... 35 I. Introduction ............................................................................................................... 36 II. Choix du langage et des outils de travail ................................................................... 36 III. Prparation de lenvironnement de travail ............................................................... 38 III.1. Installation des outils de dveloppement ......................................................... 38 III.1.1. Installation de WampServer ..................................................................... 38 III.1.2. Installation de PEAR ................................................................................. 38 III.1.3. Installation de Symfony2 .......................................................................... 39 III.1.4. Installation de Netbeans .......................................................................... 40 III.2. Cration de notre projet Symfony2 ......................................................... 41 III.3. Cration du Bundle................................................................................... 42 IV. Dveloppement de lapplication web ....................................................................... 43 IV.1. Prparation de la maquette et mise en uvre ................................................. 43 IV.2. Phase du dveloppement.................................................................................. 44 IV.2.1. Les routes ................................................................................................. 44 IV.2.2. Le contrleur ............................................................................................ 45 IV.2.3. Les templates ........................................................................................... 46 IV.2.4. La page de contact ................................................................................... 48

IV.2.5. Les formulaires ......................................................................................... 50 V. Scurit de lapplication web HedylSystems ....................................................... 52 V.1. Menaces et risques applicatifs .......................................................................... 52 V.2. Mthodes de scurit ....................................................................................... 53 V.2.1. Attaque par injection SQL .............................................................................. 53 V.2.2. Attaque CSRF ................................................................................................. 54 V.2.3. Attaque XSS.................................................................................................... 55 V.2.4. Les saisies automatises ................................................................................ 56 V.2.5. Encodage des mots de passe ........................................................................ 57 V.2.6. Attaque de lhomme de milieu ...................................................................... 59 VI. Test et validation de lapplication HedylSystems ................................................ 61 VII. Conclusion .............................................................................................................. 66 Conclusion gnrale ................................................................................................................. 67 Netographie.............................................................................................................................. 69

Table des figures


Figure 1. Organigramme de centre de formation HedylSystems............................................................ 5 Figure 2. Architecture globale de l'application ....................................................................................... 9 Figure 3. Diagramme de cas d'utilisations de lapplication ................................................................... 26 Figure 4. Diagramme de classe .............................................................................................................. 28 Figure 5. Diagramme de squence : authentification ........................................................................... 30 Figure 6. Diagramme de squence : passage de quiz par apprenant ................................................... 31 Figure 7. Diagramme de squence: Cration de quiz par un formateur .............................................. 32 Figure 8. Diagramme de squence: gestion cours par administrateur ................................................. 32 Figure 9. Diagramme de squence : gestion de groupe par administrateur ........................................ 33 Figure 10. Diagramme de squence : gestion des sances par admin/formateur ............................... 33 Figure 11. Installation de WampServer ................................................................................................. 38 Figure 12. Ajout de la variable d'environnement .................................................................................. 39 Figure 13. Installation de Symfony ........................................................................................................ 40 Figure 14. Installation de NetBeans ...................................................................................................... 40 Figure 15. Implmentation de symfony2 .............................................................................................. 41 Figure 16. Cration du dossier de travail .............................................................................................. 41 Figure 17. Choix du Framework Symfony2............................................................................................ 42 Figure 18. Cration du bundle ............................................................................................................... 42 Figure 19. Rsultat de la cration du bundle ........................................................................................ 43 Figure 20. Maquette du site web .......................................................................................................... 43 Figure 21. Parameters.yml .................................................................................................................... 44 Figure 22. Les routes ............................................................................................................................. 44 Figure 23. Les contrleurs ..................................................................................................................... 45 Figure 24. Template de base ................................................................................................................. 46 Figure 25. Template du bundle ............................................................................................................. 47 Figure 26. Template de page ................................................................................................................. 48 Figure 27. Route vers la page contact ................................................................................................... 48 Figure 28. L'entit contact..................................................................................................................... 49 Figure 29. Paramtres du Swift Mailer.................................................................................................. 49 Figure 30. Action du template contact .................................................................................................. 50 Figure 31. Template du message contact ............................................................................................. 50 Figure 32. FormBuilder du formulaire d'inscription .............................................................................. 51 Figure 33. Template du formulaire d'inscription .................................................................................. 51 Figure 34. Annotation pour la validation du formulaire ....................................................................... 52 Figure 35. Solution contre l'injection SQL ............................................................................................. 54 Figure 36. Solution contre l'attaque CSRF ............................................................................................. 54 Figure 37. Contrle des champs non-rendus ........................................................................................ 55 Figure 38. Solution contre l'attaque XSS ............................................................................................... 56

Figure 39. Ajout du module Captcha ..................................................................................................... 57 Figure 40. Paramtres du Captcha ........................................................................................................ 57 Figure 41. Ajout du champ Captcha ...................................................................................................... 57 Figure 42. Encodage des mots de passe................................................................................................ 58 Figure 43. Enregistrement du mot de passe hach............................................................................... 58 Figure 44. Rcupration de l'objet utilisateur....................................................................................... 59 Figure 45. Connexion via HTTPS ............................................................................................................ 60 Figure 46. Ajout de l'extension php_openssl ........................................................................................ 60 Figure 47. Installation d'openssl............................................................................................................ 61 Figure 48. Vrification de l'installation d'openssl ................................................................................. 61 Figure 49. Certificat obtenu .................................................................................................................. 61 Figure 50. La page contact .................................................................................................................... 62 Figure 51. Message-flash....................................................................................................................... 62 Figure 52. Message reu partir de la page contact ............................................................................ 62 Figure 53. Test des champs vides .......................................................................................................... 63 Figure 54. Validation des donnes de formulaire ................................................................................. 63 Figure 55. Enregistrement d'un membre .............................................................................................. 64 Figure 56. Vrification du mot de passe hach ..................................................................................... 64 Figure 57. Authentification dutilisateur russi ..................................................................................... 64 Figure 58. Visionner une video .............................................................................................................. 65 Figure 59. Commenter une video.......................................................................................................... 65

Liste des tableaux


Tableau 1. Comparatifs des diteurs...................................................................................................... 21

Acronymes
API CMS CSRF CSS HTML HTTP HTTPS JDK lDAP MTV MVC ORM PHP SQL SSI SSL UML URL W3C WYSIWYG XML XSS Application Programming Interface Content Management System Cross-Site Request Forgery Cascading Style Sheets HyperText Mark-Up Language HyperText Transfer Protocol
Hypertext Transfer Protocol Secure

Java Development Kit Lightweight Directory Access Protocol Model - Template - View Model - View Controller Object relational mapper Hypertext Preprocessor Structured Query Language Server-Side Include Secure Sockets Layers 'Unified Modeling Language Uniform Resource Locator World Wide Web Consortium What-You-See-Is-What-You-Get Extensible Markup Language Cross-Site Scripting

YAML

Yet Another Multicolumn Layout

Introduction gnrale
Le domaine du dveloppement web volue chaque anne avec des nouvelles technologies et de plusieurs manires afin de satisfaire les internautes. Selon lorganisme de normalisation W3C les applications web sont dfinit comme des applications bases sur le protocole http qui peuvent interagir avec dautre applications du type Web ou autres. Le web est un lieu qui nous permet dchanger des donnes et des informations, mais il est galement devenu un march pour le commerce lectronique (e-commerce). Les acteurs de ce march ont besoin alors de la scurit sous tous ses aspects, tels que dfinit par L ANSSI, la protection de la confidentialit, de lintgrit et de la disponibilit de linformation. Ces applications sont composes dun ou plusieurs scripts qui reoivent des donnes envoyes par un internaute, les traitent et produisent une rponse spcifique la demande de linternaute. Ces types applications sont courantes sur Internet, tels que les systmes dinscriptions des confrences, les forums, les sites de formation en ligne, etc. Dans cette perspective, le centre de formation HedylSystems nous a chargs de concevoir et de dvelopper une application web avec un nouveau Framework PHP et en utilisant des nouvelles technologies de dveloppement, pour permettre leurs membres de suivre une formation en ligne, tout en assurant un niveau de scurit suffisant pour lapplication web dveloppe. Le prsent rapport va permettre de dcrire les tapes de dveloppement de notre application. Il sera organis sous forme de quatre chapitres. Le premier chapitre prsentera les concepts gnraux de notre travail ainsi quune reprsentation de lorganisme daccueil HedylSystems , par la suite, nous aborderons une tude de lexistant pour mieux cerner notre problmatique et dans laquelle on citera les diffrentes difficults rencontres par le centre de formation, afin de construire larchitecture de la solution. Le second chapitre abordera une tude sur les applications web, les attaques les plus connues et les plus frquentes propre aux applications web, Nous exposons aussi les

diffrentes technologies existantes concernant les langages de dveloppement, les Frameworks et les diteurs, pour pouvoir en choisir les mieux adaptes Le troisime chapitre comportera une tude conceptuelle dtaille et adopte dans le dveloppement de lapplication, tout en se basant sur la spcification des besoins prsent dans le chapitre qui prcde. Finalement, le quatrime chapitre illustrera lapproche quon propose pour raliser et mettre en uvre une application fonctionnelle dont nous dtaillons les diffrentes astuces pour y aboutir. Nous verrons par la suite les diffrentes mthodes et solutions de scurit que nous allons adopter pour protger notre application, et on terminera par un test pour valider le bon fonctionnement de notre projet.

Cadre du travail et tude de lexistant


C h a p i t r e
Introduction prsentation de lorganisme daccueil etude de lexistant Spcification des besoins Solution propose Conclusion

CADRE du travail et tude de lexistant

2013

I.

Introduction

Dans cette partie nous allons commencer par prsenter le centre de formation HedylSystems et dcrire notre sujet de stage et les objectifs fixs. Par la suite nous allons faire une analyse de lexistant, et une spcification des besoins dans laquelle nous citerons les besoins fonctionnels et non fonctionnels relatifs a notre projet.

II.

Prsentation de lorganisme daccueil


II.1. Prsentation

Le centre de formation priv HEDYLSYSTEMS est un tablissement de formation assurant un enseignement en alternance des apprentis de toutes les catgories. Le centre peut offrir une formation polyvalente ou spcialise menant aussi bien aux diplmes du CAP, du BTP ou du BTS. Il assure galement des formations continues des adultes en collaboration avec des grandes socits (SNTRI par exemple). Les diplmes du HEDYLSYSTEMS sont homologus dans les spcialits suivantes : - Informatique de gestion : diplmes homologus de la 3me et 4me catgorie - Secrtariat : diplmes homologus de la 3me catgorie - Comptabilit dentreprise : diplmes homologus de la 3me catgorie Le centre assure galement des formations acclres dans les domaines suivants : - Informatique de base - Langues - Cration site web - Multimdia - Cration des logiciels - Maintenance en informatique - Maintenance des rseaux - Fibre optique - Rparation GSM

Projet Fin dEtude SFARI Marwa

CADRE du travail et tude de lexistant

2013

II.2.

Organisation gnrale

Lorganigramme de HedylSystems est illustr par la figure suivante :

Directeur Gnral Walid Bellagha

Directeur Adjoint Mejdi Chebbi

Direction Responsable administratif et financier Amira Fadhli

Formateurs Vacataires

Formateurs permanents Zied Moujahed Mejdi Chebbi Amira Fadhli

Secrtariat Hela Ferchichi

Adjoint de direction Zied Moujahed

Figure 1. Organigramme de centre de formation HedylSystems

III.

Prsentation du travail

Le prsent projet, intitul Dveloppements dune application web scuris vient conclure notre formation de mastre professionnel en Scurit des Systmes Informatiques communicants et Embarqus. (SSICE). Il nous a t propos par le centre de formation Hedyl System . III.1. Description du projet Le dveloppement web est un domaine trs vaste comprenant tout les aspects de conception, et impliquant aussi plusieurs uvres tels que, le dveloppement du contenu du site, la connexion au serveur web, la gestion de la base de donne et la scurit du site. Dans le cadre du stage de fin dtude on se propose de raliser une application web de formation en ligne prsentant le centre de formation hedylSystem et assurant un

Projet Fin dEtude SFARI Marwa

CADRE du travail et tude de lexistant

2013

internaute qui veut suivre sa formation de sinscrire ce centre en toute scurit et de choisir son type de formation, soit en local ou a distance. III.2. Objectif de projet Afin damliorer limage du centre, il est demand de chercher des outils qui vont nous aider dvelopper une application web permettant de : -offrir une formation a distance pour des internautes voulons se former en ligne. -autoriser les membres du centre de tlcharger des cours, de contacter leurs formateurs et davoir un espace contenant leurs profils. -Assurer une bonne scurit pour lapplication. Principales orientations du site Site de formation : Ce site permet aux membres du centre de suivre une formation en local ou distance, et davoir un espace membre contenant des supports de cours. Principaux rsultats attendues Amliorer limage du centre. Apprentissage en ligne. Assurer une bonne scurit du site. Inscription a distance fiable et scuris.

Les cibles vises Contenus Images, Vidos, Photos, lves, Etudiants Employs Retraits, etc.

Projet Fin dEtude SFARI Marwa

CADRE du travail et tude de lexistant

2013

Texte, Fichier .doc, .PDF, etc.

IV.

Etude de lexistant

Pas de maintenance de site site web vulnrable et non contrle des donnes Utilisation des outils simples comme les diteurs de texte pour modifier les paramtres et absence des interfaces graphiques fonctionnels : Difficult lors dadministration Perte de temps et possibilit derreurs. Pas de contrle daccs la base de donnes : Non contrle des donnes Non fiabilit, possibilit de dfaillance et perte de temps. La formation est seulement en local.

V.

Spcification des besoins

Dans cette partie nous allons nous intresser lanalyse des besoins et des objectifs de notre projet. Cest en tenant compte de ces besoins que nous allons faire la modlisation tout au long de la partie conceptuelle du projet, qui est la phase la plus importante dans le cycle de vie dun projet. Besoin Fonctionnels Cest lensemble des actions effectues par le systme suite une demande. Les besoins fonctionnels relatifs notre projet sont : Consultation de lapplication web. Gestion des membres inscrit dans le centre et des formateurs. Vrification des comptes des utilisateurs. Gestion de contenu de lapplication (fichiers, vidos, images, etc.) et de la base de donnes. Gestion des utilisateurs de lapplication. Contrle de session.

Projet Fin dEtude SFARI Marwa

CADRE du travail et tude de lexistant

2013

Scurit de lapplication.

Besoin non Fonctionnels Cest lensemble des besoins dutilisation, dadministration, de performance ou de scurit... Les besoins non fonctionnels relatifs notre projet sont : Convivialit : linternaute doit trouver une application lgante dune part et simple manipuler dautre part. Simplicit : le moindre de clics pour raliser une action. Scurit : lapplication doit fournir un maximum de scurit au niveau de ladministration et des comptes utilisateurs. Le systme doit tre scuris, dans le sens dassurer lintgrit, la non-rpudiation de linformation et la gestion fine des droits. Le systme doit galement assurer la scurit des informations et du contenu de lapplication. Contrainte temporelle : la ralisation du projet doit tre achemine pendant trois mois. Rsultats attendus Bon fonctionnement de lapplication Une bonne accessibilit pour les bnficiaires Une interface graphique convenable

VI.

solution propose
Structure de la solution

Nous avons prsent dans la figure ci-dessous notre solution propose pour le dveloppement de lapplication de HedylSystems.

Projet Fin dEtude SFARI Marwa

CADRE du travail et tude de lexistant

2013

Acceuil

Formulaire dauthentification

Prsentation

Formation Diplmantes
HTML5

Formation Continues HTML5

Formation Ptisserie HTML5

Inscription

Contact

HTML5 + twig

PHP 5 Script

Swift Mailer

Page administrateur Base de donnes

Page membre

Figure 2. Architecture globale de l'application Prsentation des lments

Prsentation : une page contenant toute les informations du centre HedylSystems et les formations quil offre. Formation (Diplmantes, continues, ptisserie) : Ce sont trois pages qui contiennent les spcialits offertes pour chaque type de diplme. Inscription : Ce menu est divis en deux sous-menus : Inscription homologu : Pour ceux qui dsirent avoir une formation dans le local. Inscription a distance : Pour ceux qui veulent suivre une formation en ligne.

Contact : Page contenant un formulaire de contact, pour les internautes qui veulent contacter ladministrateur. Formulaire dauthentification : Un petit formulaire contenant deux champs de saisie : login et mot de passe. Aprs la saisie du nom dutilisateur et du mot de passe, lutilisateur va tre redirig selon son rle (administrateur ou membre), vers la page correspondante son profil. Page Administrateur : cest une page dadministration permettant aux administrateurs du site de faire des modifications dans la base de donnes :

Projet Fin dEtude SFARI Marwa

CADRE du travail et tude de lexistant

2013

Ajouter, supprimer ou modifier des cours. Ajouter ou supprimer des vidos. Activer ou dsactiver des comptes utilisateurs.

Page membre : Cest lespace pour les membres dsirant suivre une formation distance, cette page contient toutes les vidos qui correspond a la formation dont le membre est inscrit et les cours tlcharger.

VII.

Conclusion

Ce chapitre nous a permis de connatre notre organisme daccueil HedylSystems qui reprsente ltablissement bnficiaire du projet. Aprs avoir prsent le projet qui nous a t propos par cette dernire, nous nous somme lancs dans ltude de lexistant dans laquelle nous avons fait une description des problmes et une reprsentation du systme effectif et de ses limites. En se fondant sur la description du systme actuel et lanalyse de ses points faibles, nous avons propos une solution et des amliorations possibles, qui seront traiter et modliser dans les chapitre qui suivent.

Projet Fin dEtude SFARI Marwa

10

Etude des applications web


C h a p i t r e
Introduction Les applications web Scurit des applications web Les langages de programmation Les outils de dveloppement Conclusion

Etude des applications web

2013

I.

Introduction

Un site web est un ensemble de pages lies entre elles, il peut tre statique (page web simple) ou dynamique (li a une base de donne), et accessible via une adresse web (nom de domaine). De la mme manire que les sites Web, une application Web est gnralement place sur un serveur et se manipule en actionnant des composants d'interface graphique laide du navigateur.

II. Les Application web


II.1. dfinition une application Web (aussi appele WebApp) est un logiciel

En informatique,

applicatif manipulable grce un navigateur Web. De la mme manire que les sites Web, une application Web est gnralement place sur un serveur et se manipule en actionnant des widgets l'aide d'un navigateur Web, via un rseau informatique (Internet, intranet, rseau local, etc.). Les messageries web, les systmes de gestion de contenu, les wikis, les blogs sont des applications Web. Les moteurs de recherches, les logiciels de commerce lectronique, les jeux en ligne, les logiciels de forum peuvent tre sous forme d'application Web. Les applications Web font partie de l'volution des usages et de la technologie du Web appele Web 2.0 [11]. II.2. Technique de base

Dans la technologie client-serveur, utilise pour le World Wide Web, le navigateur Web envoie au serveur des requtes relatives des pages Web. Le serveur rpond aux demandes en envoyant les pages au navigateur Web. Le navigateur affiche alors les pages l'utilisateur. Les applications Web utilisent cette technique pour mettre en uvre leur interface graphique. Celle-ci est compose de pages cres de toutes pices par le logiciel lors de chaque requte. Chaque hyperlien contenu dans la page provoque l'envoi d'une nouvelle

Projet Fin dEtude SFARI Marwa

12

Etude des applications web

2013

requte, qui donnera en rsultat une nouvelle page. la diffrence d'un site web statique o les pages sont des fichiers pralablement enregistrs. Les pages Web contiennent divers widgets tels des boutons poussoirs, des icnes et des zones de texte, permettant la manipulation de l'application. Chaque manipulation d'un bouton poussoir provoque l'envoi d'une nouvelle requte. Les pages Web peuvent contenir des applets. Contrairement d'autres logiciels, une application Web mise en place sur un serveur est immdiatement utilisable par le consommateur sans procdure d'achat et d'installation sur son propre ordinateur, du moment que l'ordinateur du consommateur est quip d'un navigateur Web et d'une connexion rseau. Ceci vite des interventions des administrateurs systme, interventions qui sont souvent plus coteuses que le logiciel lui-mme.

L'application Web est souvent mise disposition du consommateur par l'diteur du logiciel sur ses propres serveurs2 - technique appele Software as a Service [11].

III.

Scurit des applications web


III.1. Les bases de la scurit des applications Web

Les attaques contre les vulnrabilits des applications Web ont commenc voir le jour en mme temps qumergeait le Web, cest--dire au milieu des annes 1990. Ces attaques sappuient gnralement sur linjection de fautes, une technique permettant dexploiter les vulnrabilits de la syntaxe et de la smantique dune application Web. Avec un navigateur Web standard et une connaissance de base du protocole HTTP et du langage HTML, un pirate tente un exploit particulier en modifiant automatiquement un lien URI qui, son tour, est capable de dclencher un exploit tel quune injection de code SQL ou du script intersites. III.2. Types de vulnrabilits des applications Web

Authentification vol des identits de compte utilisateur :


Lattaque par Force

brute (ou Brute Force) automatise un processus dessais et

derreurs destin deviner le nom dutilisateur, le mot de passe, le numro de carte de crdit ou la cl cryptographique dune personne.

Projet Fin dEtude SFARI Marwa

13

Etude des applications web

2013

Lattaque par authentification insuffisante

(ou Insufficient Authentication) permet

un pirate daccder du contenu ou une fonctionnalit sensible sans authentification approprie.


La faiblesse de la validation de restauration du mot de

passe (ou Weak Password

Recovery Validation) permet un pirate dobtenir, de modifier ou de rcuprer de manire illgale le mot de passe dun autre utilisateur. Autorisation accs illgal des applications La prdiction de certificat/session (ou Credential/Session Prediction) est une mthode pour pirater ou dpersonnaliser un utilisateur. Lattaque par expiration de session insuffisante (ou Insufficient Session Expiration) permet un pirate de rutiliser des certificats ou des identifiants de session prims pour bnficier dune autorisation. Attaques ct client excution illgale de code tranger Lusurpation de contenu (ou Content Spoofing) leurre un utilisateur en lui faisant croire quun certain contenu saffichant sur un site Web est lgitime et quil ne provient pas dune source externe. Le script intersites (ou Cross-site Scripting - XSS) force un site Web relayer le code excutable fourni par un pirate et le charger dans le navigateur Web de lutilisateur. Excution de commandes prise de contrle dune application Web Les attaques par dbordement de la mmoire tampon (ou Buffer Overflow) altrent le flux dune application en crasant certaines parties de la mmoire. Les attaques par injection LDAP exploitent les sites Web en construisant des instructions LDAP partir des informations saisies par lutilisateur. Linjection de code SQL construit des instructions SQL sur une application de site Web partir des informations saisies par lutilisateur. Linjection SSI (Server-Side Include) envoie du code dans une application Web qui est ensuite excute localement par le serveur Web.

Projet Fin dEtude SFARI Marwa

14

Etude des applications web

2013

IV.

Les langages de programmation

Tout site web, ou toutes pages web est conue par un web master via un langage de programmation adapt linternet. Les sites web voluent chaque anne avec des nouvelles technologies et de plusieurs manires fin de satisfaire les besoins des internautes. Les langages utiliss sur le web sont nombreuses, mais chacun ayant ces utilits, ces avantages et ces inconvnients, ils peuvent naturellement se sparer en deux grandes catgories : Les langages ct serveur Les langages ct client IV.1. Les langages serveur

Ces langages servent traiter la requte du client et prparer la rponse envoyer, cette rponse est sous forme dune vue. Il existe de nombreux langages ct serveur mais nous allons citer seulement les plus utiliss et prsenter leurs avantages et inconvnients.

PHP Langage utilis par les plus grands CMS (wordpress, joomla, drupal, magento,).

Avantages:

Matrise du fonctionnement et du code. Le code source n'est pas visible. Nombreuses interactions avec le serveur (bases de donnes, fonctions avances d'images, de gnration de pdf, d'excution de scripts) [1].
Inconvnients:

Ncessite un serveur qui accepte le PHP. Nombreuses failles de scurit [1].

Projet Fin dEtude SFARI Marwa

15

Etude des applications web

2013

JAVA Le langage de programmation Java surgit sur la grande scne d'Internet et obtient

immdiatement un norme succs. La prtention de Java est de constituer la colle universelle capable de connecter les utilisateurs aux informations, que celles-ci proviennent de serveurs Web de bases de donnes, de fournisseurs d'informations ou de toute autre source imaginable. [2].
Avantages:

Bibliothque d'excution qui se veut indpendante de la plateforme. Permet de faire des sites et applications web rapides et scuriss.
Inconvnients:

Consommation n ressourcs assz alatoire. L'application est nst pas forcment stable. Il nest pas simple de trouvr un hbergeur accptant autr chose que le PHP.

ASP.net ASP.NET a t dvelopp par Microsoft et il est synonyme de pages de serveur actives.

Il est utilis pour crer des pages Web et des technologies. Il est une partie importante de Microsoft. Vision NET. Il est un instrument important pour les programmeurs car il construit des sites Web riches et dynamiques ainsi que des applications. [3]
Avantages:

Un code plus structur grce la sparation du contenu HTML et de la cinmatique.


sparation du contenu graphique et du code en deux fichiers distincts

Faciliter la rutilisation avec les contrles utilisateur


Inconvnients:

Assz compliqu faire tourner sur Linux, et que la majorit des srvurs tournent sous linux.

Projet Fin dEtude SFARI Marwa

16

Etude des applications web

2013

IV.2.

Les langages clients

HTML LHypertext Markup Language, gnralement abrg HTML, est le format de

donnes conu pour reprsenter les pages web. Cest un langage de balisage permettant dcrire de lhypertexte, do son nom. [4] Sans conteste le langage client phare pour les sites web, le HTML gre tout ce qui est mise en forme d'information (bien que le HTML5 tende faire plus que de l'affichage). Il est compos d'un ensemble de balises, et qui ressemble au XML. Il est assez particulier car il n'est en ralit qu'un ensemble de rgles nonces par le W3C.

CSS Le langage CSS (ou feuilles de style en cascade) est le format utilis pour dcrire la

prsentation de documents HTML. Le CSS est donc un langage de prsentation, permettant de crer un vrai design sur chaque page de votre site. Vous pourrez par exemple changer la taille, le positionnement, le style et la couleur de chaque lment de vos pages comme les titres, images, etc. Tout en tant complmentaire au langage HTML, le CSS devient donc trs vite indispensable si l'on veut russir un design clair et personnalis de ses pages web. [5]

JavaScript Comme pour les deux prcdents, le JavaScript est une interprtation de

l'ECMAScript maintenu par le W3C. C'est le moyen de rendre dynamique des pages, en modifiant les proprits HTML avec des transitions (pour faire de jolies animations, par exemple), effectuant des requtes vers le serveur, discutant avec des lments embarqus tels du flash, et autres. [6]

XML et JSON Ces deux langages sont trs loigns l'un de l'autre dans la forme, mais ont des buts

identiques: transmission d'informations et stockage.

Projet Fin dEtude SFARI Marwa

17

Etude des applications web

2013

V.

Les Outils de dveloppements


V.1. Les Framework

Django Django est un Framework open-source de dveloppement web en Python. Il s'inspire

du principe MVC ou MTV (la vue est gre par un template) compos de 3 parties distinctes : 1) Un langage de templates flexible qui permet de gnrer du HTML, XML ou tout autre format texte ; 2) Un contrleur fourni sous la forme d'un "remapping" d'URL base d'expressions rationnelles ; 3) Une API daccs aux donnes est automatiquement gnre par le Framework compatible CRUD. Inutile dcrire des requtes SQL associes des formulaires, les requtes SQL sont gnres automatiquement par lORM. [7]
Avantages:

Les vues gnriques : il s'agit de vues permettant de traiter les cas les plus courants du dveloppement web de manire trs simple. Elles permettent par exemple de lister des objets avec une gestion de la pagination, de lister des objets organiss par date avec des URL du type (anne)/(mois)/(jour)/lment afficher. Le systme d'authentification Les exceptions : les exceptions et backtraces Python sont bien gres dans Django et apparaissent dans les pages d'erreur 500, en mode dbogage. On peut avoir une bonne ide des variables d'environnement et du code ayant provoqu l'exception. Des efforts sont mens pour inclure d'autres outils comme par exemple la barre de dbogage de Symfony (Django Debug Toolbar).
Inconvnients :

L'AJAX : Django en tant que framework ne permet pas, seul, l'intgration d'AJAX ct client web. Ceci est un choix de l'quipe de dveloppement qui prfre laisser

Projet Fin dEtude SFARI Marwa

18

Etude des applications web

2013

l'utilisateur le choix de la bibliothque AJAX combiner avec Django (MooTools, Prototype, Mochikit, jQuery, dojo, ext, etc.). Migrations : Il n'y a pas d'outil intgr au Framework pour grer les migrations lors des modifications des modles.

Zend Zend est un framework pour PHP 5 cr en mars 2006 par Zend Technologies. Il est

distribu sous la Licence BSD Modifie. Le Zend Framework, aussi nomm ZF, a t dvelopp dans le but de simplifier le dveloppement Web tout en recommandant les bonnes pratiques et la conception oriente objets en offrant des outils aux dveloppeurs. ZF permet aussi d'utiliser nativement le principe de MVC (Modle-Vue-Contrleur) mais ne l'oblige pas [8].
Avantages :

Librairie stable, simple et fiable Un effort considrable a t produit sur les tests unitaires du Framework. Le Zend Framework est une brique solide sur laquelle on peut baser ses dveloppements Le ZF a t conu dans le souci d'extensibilit et de flexibilit
Inconvnients :

Bien que le Zend Framework soit un Framework complet, il possde cependant quelques limites :

L'impact de l'utilisation de Zend Framework sur un serveur n'est pas ngligeable Relativement compliqu apprhender et bien comprendre son fonctionnement [9] Prado PRADO (PHP Rapid Application Development Object-oriented) est

un Framework libre crit en PHP 5. PRADO redfinit les applications Web en termes d'objets, d'vnements et de proprits, la place de procdures, URL et requtes. Dvelopper une application Web PRADO reprsente l'instanciation de composants de types prcis, puis la configuration de leurs

Projet Fin dEtude SFARI Marwa

19

Etude des applications web

2013

proprits, et leur assemblage pour remplir une tche. La liste suivante est un rapide rsum des principales fonctionnalits de PRADO :

Rutilisation : Le code provenant du protocole de composant PRADO est rellement


rutilisable. Cela bnficie l'quipe de dveloppement dans le sens o ils peuvent rutiliser leur travail prcdent afin de l'intgrer dans d'autres parties de faon aise.

Facilit d'utilisation : Cration et utilisation des composants sont extrmement


simples. Habituellement, ils impliquent simplement la configuration des proprits des composants.

Performance : PRADO utilise une technique de cache pour garantir la performance


des applications sur cette base. La performance est en fait comparable ceux bass sur des moteurs de modles couramment utiliss.

Symfony

Symfony est un Framework MVC libre crit en PHP 5. En tant que Framework, il facilite et acclre le dveloppement de sites et d'applications Internet et Intranet. La qualit du code de Symfony le rend trs adaptable : le code est dcoupl La sparation application / module permet de personnaliser facilement de nombreux paramtres Symfony possde une importante communaut d'utilisateurs et de dveloppeurs. De nombreux sites sont dvelopps avec Symfony. Prvue fin 2013, se dveloppe sous Symfony2. L'quipe de dveloppeurs Drupal justifie son choix par les lments suivants : Meilleure lisibilit du code induite par les rgles Symfony 2, Gestion directe des espaces de noms, dont l'absence jusqu' Drupal 7 obligeait l'usage de noms prfixs et donc incommodes,

Projet Fin dEtude SFARI Marwa

20

Etude des applications web

2013

Importante communaut d'utilisateurs de Symfony 2, vivier de dveloppeurs Drupal potentiels. V.2. Les diteurs

Il existe plusieurs diteurs de dveloppement web, en mode code ou en mode WYSIWYG, bon ou moins bon. Ils existent galement des diteurs qui ne sont pas efficace en codage, ils font du code nimporte comment. Pour viter ce genre dditeurs, On va commencer faire une tude comparative pour viter ce genre doutils et prendre a la place des diteurs plus efficaces et qui font du code propre, valide et lisible. Certains sont gratuits, dautres payants, certain open source et dautres non, le tableau ci-dessous illustre une tude comparative de tous ces diteurs.
Editeur Dbogage Vrification en temps rel FTP Support SQL/BDD Frameworks Systmes Prix

aptana codeLobster Dreamweaver Eclipse komodo Netbeans Notepad++ PHPEdit Zend Studio

CodePhp Code Igniter Smarty

Win/Linux

Gratuit

Win

Payant

Win

Payant

Win/Linux

Gratuit

Win/Linux

Payant

Zend Symfony

Win/Linux

Gratuit

Win

Gratuit

Symfony Prado Zend

Win

Payant

Win/Linux

Payant

Tableau 1. Comparatifs des diteurs

Projet Fin dEtude SFARI Marwa

21

Etude des applications web

2013

VI.

Conclusion

Au cours de ce chapitre nous avons fait une tude approfondie sur les applications web et leurs types de vulnrabilits. Ensuite, nous avons mens une recherche sur les langages de programmations et les outils de dveloppements existants qui peuvent nous tre utiles pour le dploiement de notre solution. Nous nous intresserons dans ce qui va suivre la spcification des besoins et la partie conceptuelle de ce projet.

Projet Fin dEtude SFARI Marwa

22

Etude conceptuelle
C h a p i t r e

Introduction

Choix du modle de conception Dfinition du Langage UML diagramme de cas dutilisation Diagramme de classe Diagramme de squence Conclusion

Etude conceptuelle

2013

I.

Introduction

Nous nous intresserons dans ce chapitre la partie conceptuelle du projet. Nous allons modliser notre systme dinformation respectant les rgles et les contraintes fixes. Nous allons procder au choix de la mthode de conception adquate permettant de modliser au mieux le systme dinformation, il sagit ensuite de dterminer les diffrents langages, techniques et outils utiliser fin de construire une solution scurise et avec minimum de risque.

II. Choix du modle de conception


Aprs plusieurs recherches et tudes, nous avons constat quil faut disposer dun outil qui donne une dimension mthodologique lapproche objet et qui permette de mieux matriser sa richesse. Notre choix tait donc orient vers une modlisation avec le standard UML. Par rapport toutes les mthodes orientes objets qui sont en utilisation, seul UML a la capacit de satisfaire tous les besoins de conceptions requises par les entreprises et les botes informatiques. En effet, il unifie les notations ncessaires aux diffrentes activits dun processus de dveloppement et offre en plus le moyen dtablir le suivi des dcisions prises, depuis la spcification jusquau codage.

III.

Dfinition du Langage UML

UML est une mthode de conception, de dveloppement et de ralisation de projets informatiques, son but est darriver concevoir un systme dinformation. Elle est base sur la sparation des donnes et des traitements effectuer en plusieurs modles conceptuels et physiques. La sparation des donnes et des traitements assure une longvit aux donnes. En effet, lagencement des donnes na pas t souvent remani, tandis que les traitements sont le plus frquemment.

Projet Fin dEtude SFARI Marwa

24

Etude conceptuelle

2013

IV.

Diagramme de cas dutilisation

Le diagramme de cas dutilisation dcrit le comportement au systme appel aussi use cases. Il sert modliser les fonctionnalits du systme ayant une interface externe. Lintrt des Uses Cases est de traiter linteraction des acteurs avec le systme dune manire formelle. Selon les cas dutilisation, on peut dduire plusieurs scnarios dont leur dtermination dpend essentiellement de ce quattend lutilisateur du systme. IV.1. Identification des acteurs du systme

Le but de ce modle est de prsenter les diffrents besoins et facettes de lapplication dune faon formelle. Dans la modlisation, pour les cas dutilisation, on distingue deux concepts fondamentaux : les acteurs et les cas dutilisation. Les acteurs sont les utilisateurs du systme. Ils constituent les lments extrieurs. Les administrateurs Ladministrateur a pour rle de grer la base de donnes, de contrler les compte des membres et de modifier le contenue de lapplication. Les formateurs Le rle des formateurs est de grer les sances, faire des quiz et rpondre aux messages des membres. Les membres Il existe deux types de membres : Les membres qui souhaitent faire une formation en local. Les apprenants qui veulent suivre une formation en ligne.

Les utilisateurs Ce sont les internautes visitant le site du centre ou voulant contacter les administrateurs.

Projet Fin dEtude SFARI Marwa

25

Etude conceptuelle

2013

IV.2.

Cas dutilisation IV.2.1 Diagramme de cas dutilisation

Dans ce qui suit nous allons modliser les besoins tudis par des diagrammes de cas d'utilisation traduisant en une reprsentation le comportement de notre application, telle quillustr la figure 3.

Figure 3. Diagramme de cas d'utilisations de lapplication IV.2.2 Description textuelle Description textuelle du Diagramme cas d'utilisation gnral : Acteur principale : Le visiteur

Projet Fin dEtude SFARI Marwa

26

Etude conceptuelle

2013

Objectif : Le visiteur doit connatre toutes les informations propos du centre, les formations offertes, et pouvoir contacter cet tablissement. Pr condition : Le site est accessible tous les visiteurs. Post condition : sinscrire au centre.

V.

Diagramme de classe

Le diagramme de classes reprsente un modle UML trs important puisquil comporte les diffrentes classes composant le systme. V.1. Dfinition

Un diagramme de classes est une collection d'lments de modlisation statique (classes, paquetages...), qui montre la structure d'un modle. Le diagramme de classes exprime la structure statique du systme. Il dcrit lensemble des classes et leurs associations. Une classe dcrit un ensemble dobjets (instances de la classe). Une association exprime une connexion smantique bidirectionnelle entre classes. Elle dcrit un ensemble de liens (instances de lassociation). Le rle dcrit une extrmit dune association. Les cardinalits (ou multiplicits) indiquent le nombre dinstances dune classe pour chaque instance de lautre classe. V.2. Diagramme de classe

Dans la figure prsente en titre prcdent nous avons montr les tapes de conception de notre projet. Nous allons passer dans cette partie une explication des tapes cites dans le schma conceptuel ainsi qu' une indication de leur succession dans l'algorithme de travail que nous avons envisag, notre diagramme de classe est reprsent par la figure ci-dessous.

Projet Fin dEtude SFARI Marwa

27

Etude conceptuelle

2013

Figure 4. Diagramme de classe

VI.

Diagramme de squence

Dans cette partie nous allons prsenter toutes les squences dclenches dans ce projet, la quantit de diagrammes raliser pouvait atteindre un nombre lev ds lors que l'on souhaitait dcrire avec un peu de dtail les diffrentes branches comportementales d'une fonctionnalit. VI.1. Dfinition

Ce diagramme permet de reprsenter des collaborations entre objets selon un point de vue temporel, on y met l'accent sur la chronologie des envois de messages. Dans ce diagramme, on ne dcrit ni le contexte ni l'tat des objets, mais la reprsentation se concentre

Projet Fin dEtude SFARI Marwa

28

Etude conceptuelle

2013

sur l'expression des interactions. Il y a autant de diagrammes de squences quil y a de scnarios. Un Scnario montre une squence particulire dinteractions entre les objets, dans un seul contexte dexcution du systme. Un scnario peut tre vu comme une des instances possibles des cas dutilisation. On y fait intervenir des objets, des messages et des vnements. Les diagrammes de squences peuvent servir illustrer un cas d'utilisation. L'ordre d'envoi d'un message est dtermin par sa position sur l'axe vertical du diagramme, le temps s'coule "de haut en bas" de cet axe. La disposition des objets sur l'axe horizontal n'a pas de consquence pour la smantique du diagramme. Un message dfinit une communication particulire entre des lignes de vie. Plusieurs types de messages existent, les plus communs sont : Lenvoi dun signal Linvocation dune opration La cration ou la destruction dune instance VI.2. Diffrents diagrammes de squence VI.2.1 Authentification

La figure ci-dessous montre la squence d'authentification. C'est la premire squence dclenche dans ce projet. L'utilisateur entrain de se connecter attend la rponse pour tre redirig vers la page d'accueil correspondante son profil.

Projet Fin dEtude SFARI Marwa

29

Etude conceptuelle

2013

Figure 5. Diagramme de squence : authentification VI.2.2. Passage dvaluation

Cette figure dmontre le processus suivi par l'apprenant pour passer une valuation (quiz). Ce processus ne se dclenche si, et seulement si, une valuation est programme pour le cours en question.

Projet Fin dEtude SFARI Marwa

30

Etude conceptuelle

2013

Figure 6. Diagramme de squence : passage de quiz par apprenant VI.2.3. Cration dvaluation

Cette squence expose la manire avec laquelle un formateur cre un quiz. Il doit spcifier les questions, les propositions pour chaque question, et les bonnes rponses, ce scnario est illustr par la figure ci-dessous.

Projet Fin dEtude SFARI Marwa

31

Etude conceptuelle

2013

Figure 7. Diagramme de squence: Cration de quiz par un formateur VI.2.4. Gestion de cours

Ce diagramme retrace le droulement de la cration des cours. Un cours contient plusieurs chapitres, et un chapitre contient plusieurs exercices.

Figure 8. Diagramme de squence: gestion cours par administrateur

Projet Fin dEtude SFARI Marwa

32

Etude conceptuelle

2013

VI.2.5.

Gestion de groupes

Cette squence reprsente la procdure dinsertion des apprenants dans des groupes spcifis. Cette tche est effectue par les administrateurs.

Figure 9. Diagramme de squence : gestion de groupe par administrateur VI.2.6. Gestion de sances

Ce diagramme explique comment est ce que les formateurs ou les administrateurs programment une sance. La disponibilit dau moins un groupe, et au moins un cours est indispensable pour pouvoir crer une sance.

Figure 10. Diagramme de squence : gestion des sances par admin/formateur

Projet Fin dEtude SFARI Marwa

33

Etude conceptuelle

2013

VII.

Conclusion

Aprs avoir spcifi les besoins et les ensembles dactions qui devrons tre effectues par notre systme. Nous avons fait une tude approfondie de la solution comprenant une reprsentation de l'architecture globale du projet ainsi que la description des diffrentes tapes pour la ralisation de lapplication, nous allons par la suite expliquer les diffrent tches que nous allons appliques dans un travail dcrivant la mise en pratique des tapes cites.

Projet Fin dEtude SFARI Marwa

34

Dveloppement dune application web scurise


C h a p i t r e
Introduction Choix du langage et des outils de travail prparation de lenvironnement de travail dveloppement de lapplication web scurit de lapplication web HedylSystems test et validation de lapplication Conclusion

Dveloppement dune application web scurise

2013

I.

Introduction

Ce chapitre comprendra deux parties, la premire phase intgrera toutes les actions et les tests effectus pendant la ralisation du projet. Nous allons dtailler la mise en pratique des diffrentes tapes que nous avons tudies antrieurement. La seconde phase de ce chapitre relvera de la mise en uvre de la partie scurit de notre application. Nous allons donc dtailler les solutions et les mthodes appliques pour aboutir une application bien scurise.

II. Choix du langage et des outils de travail


Nous allons essayer dexpliquer pourquoi nous avons choisi de faire confiance Symfony2 pour notre dveloppement. Comme dhabitude dans ce genre de choix, les raisons sont bien videmment multiples. Voici nanmoins les principaux motifs qui ont guid notre dcision : Les performances En termes de performances, le monde PHP est bien videmment en retard par rapport aux mondes Java et .Net. Nanmoins, Sensio semble avoir fait quelques choix trs intressants en termes de performances : Tout est cach, mme certaines parties de code (les annotations par exemple) sont caches. Ce mcanisme permet une amlioration significative la fois des performances brutes (temps de rponse) mais aussi de la monte en charge. Moins la machine passe de temps rpter des calculs simples (lire un fichier de configuration), plus elle a de temps passer rpondre dautres requtes. Les templates Twig eux-mmes sont compils en PHP et cachs pour amliorer les performances du moteur de template dans lequel rside souvent, dans beaucoup de frameworks, la majorit des problmes de performance. Template Une des autres forces de Symfony 2 est la prsence dun moteur de template. En plus dtre bien intgr au Framework sous la forme dun service, il prsente de nombreux avantages :

Projet Fin dEtude SFARI Marwa

36

Dveloppement dune application web scurise

2013

En ne permettant pas au dveloppeur dappeler du code natif, il permet de tester plus Limpossibilit dappeler du code natif oblige aussi le dveloppeur laisser le logique

facilement les templates en moquant leurs dpendances.

mtier dans la partie Contrleur du MVC. Puisque nous avons choisi dutiliser symfony2 qui est un Framework PHP5, nous allons choisir un diteur qui supporte ce Framework, donc nous avons choisis Netbeans puisquil est gratuit. Concernant les langages clients, il y en a beaucoup qui sont indispensables et complmentaires au HTML, on va donc utiliser les dernires rvisions pour ces langages, qui sont : HTML5 : qui est la prochaine rvision majeure dHTML, et son nouveau standard. CSS3 : qui contient des nouveaux effets appliquer sur nos lments HTML. JavaScript : qui va rendre nos pages web plus dynamique et anim Json : pour la transmission de donnes Twig : qui est un langage de template trs puissante, et qui nous permet dcrire des template simple et lisible, et dans bien des aspects il est plus puissant que le template PHP. Nous allons utilisr Twig comme motur de tmplate pour un crtain nombr d raisons. Rapide: Les tmplats Twig sont compils n classs PHP, il y a donc trs pu de surcharg lors de lutilisation des templats Twig. Concis: Twig nous permt de ralisr les fonctionnalits lis au templats en trs pu de cod. Cst comparr avc l PHP, qui peut parfois savrr trs vrbux. Supportes lhritage de template: Ls tmplats ont la capacit dtendr t surchargr dautrs templats, ce qui prmt aux tmplats nfants de rmplacr c qui t propos par dfaut par ls parents.

Projet Fin dEtude SFARI Marwa

37

Dveloppement dune application web scurise

2013

III.

Prparation de lenvironnement de travail


III.1. Installation des outils de dveloppement

Les outils utiliss dans ce projet sont aux nombres de trois : Netbeans, WampServer, et Symfony2. III.1.1. Installation de WampServer

Linstallation de WampServer est trs facile daccs, il suffit de se rendre sur la page officielle de WampServer, et tlcharger la version adapte a notre machine. Dans notre cas nous allons tlcharger la version 64bit et qui contient les dernires versions de PHP et apache. Au cours de linstallation nous allons laisser les configurations par dfaut, comme cest montr dans la figure ci-dessous.

Figure 11. Installation de WampServer III.1.2. Installation de PEAR

PEAR est une extension de PHP qui permet dautomatiser linstallation, la mise jour et la suppression de librairies PHP. Nous allons procder linstallation de PEAR via linvite de commande de Windows.

Projet Fin dEtude SFARI Marwa

38

Dveloppement dune application web scurise

2013

$cd C:\wamp\bin\php\ php5.3.13 $go-pear.bat

Ensuite, nous allons configurer la variable denvironnement PATH de Windows. Cette variable, nous permettra dans ce cas prsent dexcuter symfony.bat en ligne de commande dans nimporte quel sous-dossier. La figure 12 montre la modification de la valeur de variable PATH:
;C:\wamp\bin\php\php5.2.8

Figure 12. Ajout de la variable d'environnement III.1.3. Installation de Symfony2

Linstallation de Symfony seffectue aussi en ligne de commande : Nous allons tout dabord ajouter le canal Symfony en utilisant channel-discover , et aprs on lancera linstallation de Symfony. La figure ci-dessous prsente les tapes dinstallation de symfony2.

Projet Fin dEtude SFARI Marwa

39

Dveloppement dune application web scurise

2013

Figure 13. Installation de Symfony2 III.1.4. Installation de Netbeans

Maintenant que Wamp est install, nous pouvons nous lancer dans celle de Netbeans. Pour cela, il est indispensable quun JDK de Java soit pralablement install. Nous allons donc installer le dernier JDK disponible. Lors de linstallation du Netbeans on peut distinguer trois tapes importantes : Accepter les termes du contrat tel quillustr la figure suivante :

Figure 14. Installation de NetBeans

Projet Fin dEtude SFARI Marwa

40

Dveloppement dune application web scurise

2013

Choisir le dossier de destination de Netbeans Spcifier le chemin daccs vers notre JDK java. III.2. Cration de notre projet Symfony2

Pour crer un projet symfony2 sous NetBeans, il faut dabord limplmenter. Pour cela, commenant par tlcharger une archive de la dernire version de symfony2, aprs nous allons intgrer cette archive a NetBeans, comme le montre la figure 15.

Figure 15. Implmentation de symfony2 Aprs cette tape, nous pouvons maintenant crer notre dossier de travail sous WampServer.

Figure 16. Cration du dossier de travail Enfin, choisir le Framework appliquer : On choisit donc Symfony2 PHP Web Framework , tel quillustr dans la figure ci-dessous.

Projet Fin dEtude SFARI Marwa

41

Dveloppement dune application web scurise

2013

Figure 17. Choix du Framework Symfony2 Voila, notre projet est maintenant cr, il ne reste plus qua cr le Bundle, cest un lment essentiel dans lutilisation de symfony2. III.3. Cration du Bundle

Un bundle est un ensemble de dossiers et de fichiers qui reprsentent une fonction applicable un site ou une application Web. En effet, comme nous lavons vu, Symfony2 est un Framework modulable. Pour crer un bundle, nous allons passer par linvite de commande, et saisir quelques lignes, comme cest illustr dans les figures 18 et 19.

Figure 18. Cration du bundle

Projet Fin dEtude SFARI Marwa

42

Dveloppement dune application web scurise

2013

Figure 19. Rsultat de la cration du bundle

IV.

Dveloppement de lapplication web


IV.1. Prparation de la maquette et mise en uvre

Aprs avoir ralis larborescence de notre site web, nous avons commenc la phase de maquettage. La figure ci-dessous prsente lutilisation de loutil Photoshop pour le design de linterface web.

Figure 20. Maquette du site web

Projet Fin dEtude SFARI Marwa

43

Dveloppement dune application web scurise

2013

Ensuite, nous avons pass la phase de dcoupage, et pour cela nous avons utilis du code HTML5, CSS3 pour le style de notre page, et du JavaScript pour les animations. IV.2. Phase du dveloppement

Symfony2 propose une interface web pour configurer divers aspects du site web tel que la base de donnes. Pour ce projet nous allons avoir besoin dune base de donnes. Nous avons choisi dutiliser MySQL. La configuration est sauvegarder dans un fichier YAML parameters.yml , tel quillustr dans la figure ci-dessous.

Figure 21. Parameters.yml IV.2.1. Les routes

L routag est c qui permet de faire l lien entre un URL dfini dans le navigatur du clint et le contrleur Bundle appelr. Il centralis les diffrents lins autoriss sur l site et retourn un code d'erreur 404 si le lien propos n'y st pas configur. Notre fichier de routage situ dans ../Resources/config/routing.yml contient tout les rgles de routage, La figure 22 montre quelques routes ainsi que leur structure.

Figure 22. Les routes

Projet Fin dEtude SFARI Marwa

44

Dveloppement dune application web scurise

2013

Le routag est compos dun motif et de paramtrs par dfaut. Le motif est compar lURL, les paramtrs dsignent quel contrleur excutr lorsque la route est ligibl. Si une adress valide tous les critrs prciss par une route, alors elle sera excute par le contrleur dcrit dans loption _controllr. Cette option contient le nom logique du contrleur qui permt Symfony2 de lassocir un fichir spcifique. IV.2.2. Le contrleur

Un contrleur est une fonction PHP qui prend l'information provenant de la requte HTTP et construit puis retourne une rponse HTTP (sous forme d'un objet Symfony2). La rponse peut tre une page HTML, un document XML, une image, une redirection, une erreur 404. Le contrleur contient n'importe quelle logique arbitraire, dont notre application a besoin pour retourner le contenu d'une page. Dans notre projet nous avons utilis plusieurs contrleurs pour nos pages, tel quillustr dans la figure ci-dessous.

Figure 23. Les contrleurs

Projet Fin dEtude SFARI Marwa

45

Dveloppement dune application web scurise

2013

IV.2.3.

Les templates

Comm Twig support lhritag de templat, nous allons mttre en place lapproche dhritag. Cette approche nous prmet de modifier la vue a plusieurs niveaux distincts lintrieur d lapplication, ce qui prmet pas mal de prsonnalisation. Template principale Nous allons commencer par crer le bloc de base du template pour notre application. Comme cest montr dans la figure ci-dessous, nous avons utilis trois fichiers, le template, son fichier css associe et le fichier .js qui contient le code JavaScript. Comme symfony2 supporte le HTML5, nous allons galement nous en servir.

Figure 24. Template de base Template du Bundle Nous allons maintnant avancer vers la cration de la prsentation pour l bundle du site. Tout dabord, il tnd le template de base de notre application. Ensuite, il remplace le bloc de la barre latrale sidebar avec un contenu factice, puisque cette barre va paratre dans touts les pags.

Projet Fin dEtude SFARI Marwa

46

Dveloppement dune application web scurise

2013

Le bundl devrait contnir toutes ses fonctionnalits et affichr la barre latrale fait partie dune de cs fonctionnalits. Plus loin ce template du scond tage va nous donner de la flexibilit pour ajoutr de la prsonnalisation pour des bsoins futurs et tous les templates enfants en hriteront. Par exemple, nous pourrions vouloir afficher le pid de page footer sur touts les pages, et ce serait lendroit idal pour faire cci. Cette figure prsente lhritage du template base.html.twig , en utilisant la balise extends.

Figure 25. Template du bundle Template de page Ces templates vont tendre le template du bundle, ils reprsenteront le contenu de chaque page de notre site. Lappelle ces pages se fait bien sr grce aux actions dfinis dans les contrleurs spcifique eux. La figure ci-dessous, illustre lutilisation de plusieurs templates qui seront appel par des contrleurs.

Projet Fin dEtude SFARI Marwa

47

Dveloppement dune application web scurise

2013

Figure 26. Template de page IV.2.4. La page de contact

Nous allons commencer par dfinir la route vers la page de contact, comme le montre la figure suivante.

Figure 27. Route vers la page contact La rgle associe le lien /contact pour la mthode HTTP GET | POST et excute laction contact du contrleur Contact dans le HedylHedylBundle . Lentit contact Dans cette parti nous allons crer notr class contact qui reprsente une requte de contact. Nous voulons rcuprr des informations de bas telles que le nom, le sujt de la requte ainsi que le message que lutilisateur souhaite envoyer.

Projet Fin dEtude SFARI Marwa

48

Dveloppement dune application web scurise

2013

Figure 28. L'entit contact Envoie demail Symfony2 est livr avc la librairie dnvoi demail Swift Mailer . Il sagit dune librairi trs puissant, donc nous allons fair les configurations ncessairs. Configuration des paramtres de Swift Mailer :

Figure 29. Paramtres du Swift Mailer Modification du contrleur : Aprs la configuration du Swift Mailer, nous allons crer une action dans le contrleur qui va permettre lutilisateur denvoyer un mail au webmaster ou ladministrateur.

Projet Fin dEtude SFARI Marwa

49

Dveloppement dune application web scurise

2013

Figure 30. Action du template contact Cration du template pour les emails : Nous allons maintenant dcrire le corps de lemail dans un template.

Figure 31. Template du message contact Le contnu de lmail est celui que lutilisateur vint de soumettre. IV.2.5. Les formulaires

Dans notre application nous avons cr deux formulaires, un pour la page contact et lautres pour linscription. Dans cette partie nous dtaillerons un peu plus les tapes que nous avons suivies pour leur cration. EnquiryType Aprs avoir cr les deux entits correspondantes aux deux formulaires, nous avons pass la classe EnquiryType qui va nous permettre de prsenter la classe FormBuilder .

Projet Fin dEtude SFARI Marwa

50

Dveloppement dune application web scurise

2013

La classe FormBuildr est capable de simplifir le procssus de dfinition des champs partir des mtadonnes quun champ possde.

Figure 32. FormBuilder du formulaire d'inscription Affichage du formulaire Grce Twig, laffichag de formulairs est trs simpl. Twig propos en effet un systme par couchs pour laffichage de formulairs qui prmt soit daffichr un formulaire comme un unique entit, soit comm des lments individuls, slon le bsoin de prsonnalisation ncessaire.

Figure 33. Template du formulaire d'inscription

Projet Fin dEtude SFARI Marwa

51

Dveloppement dune application web scurise

2013

La fonction form_errors affichra les erreurs du formulaire dans le cas o la validation choie. La fonction form_row affiche ls lments lis un champ. Cla comporte touts les erreurs associes au champ, ltiqutt lie au champ ainsi que llmnt du champ de formulaire lui mme. Les validateurs Les validaturs de Symfony2 prmttnt de validr ls donnes. La validation est une tch courant lorsquil est qustion de validr ls donnes de formulaire. Ctt tche doit tre ralise avant que ls donnes ne soint envoyes vrs une base de donnes. Ils nous prmttnt aussi de sparr notre logique de validation ds composants qui pourraint sen servir, tls que les composants de formulaire ou de base de donnes. Ils existent plusieurs mthodes pour la validation comme les metadata , mais nous, nous avons utilis les annotations.

Figure 34. Annotation pour la validation du formulaire

V.

Scurit de lapplication web HedylSystems


V.1. Menaces et risques applicatifs

Projet Fin dEtude SFARI Marwa

52

Dveloppement dune application web scurise

2013

Il est possible de se protger de la plupart des attaques expliques prcdemment dans le deuxime chapitre en suivant quelques rgles de dveloppement : Toutes les donnes doivent tre vrifies. Privilgier lutilisation des requtes POST. Utiliser les requtes paramtres. Scuriser laccs aux donnes. Ces rgles de base ne suffisent plus scuriser une application web, car comme les technologies du dveloppement voluent, les attaques voluent aussi. Nous allons donc essayer dappliquer plusieurs mthodes de scurit et dinventer dautre, pour mieux scuriser notre application. V.2. Mthodes de scurit

Dans cette partie nous allons expliquer les diffrentes solutions de scurit appliques pour chaque menace. V.2.1. Attaque par injection SQL

Le code malicieux le plus rpandu est dajouter une instruction pour faire en sorte que la requte sous-jacente soit toujours positive. Cela permet par exemple dusurper une identit pour se connecter une application Web, de rendre lapplication inutilisable ou de supprimer toutes les donnes de la table vise, voire mme de la base de donnes complte. Solution La protection est active si on utilise les mthodes adquates pour gnrer les requtes SQL, telles que setParameter . Cette mthode, prsente dans la figure ci-dessous, permet de renseigner de faon scurise les paramtres dune requte SQL :

Projet Fin dEtude SFARI Marwa

53

Dveloppement dune application web scurise

2013

Figure 35. Solution contre l'injection SQL Quel que soit le contenu de la variable $username , il ny a pas ici de risque dinjection de code. En effet, les caractres spciaux sont chapps de faon nexcuter aucun code frauduleux au moment de lenvoie de requte en base. V.2.2. Attaque CSRF

Ces attaques ciblent des utilisateurs authentifis dune application et leur font excuter des actions et leur insu. Gnralement ce type dattaque vise les formulaires, ce sont des requtes http dattaque envoys par un utilisateur. Donc, nous allons devoir mettre en place la scurit au niveau des formulaires. Solution Les attaques CSRF peuvent tre vites en utilisant un jeton CSRF dans nos formulaires. Le serveur gnre un jeton qui est inclus dans le formulaire et qui lui permet de vrifier que ce formulaire a bien t requis par lutilisateur avant den accepter le contenu. Aucun formulaire sans jeton valide nest accept.

Figure 36. Solution contre l'attaque CSRF

Projet Fin dEtude SFARI Marwa

54

Dveloppement dune application web scurise

2013

La protection CSRF fonctionne par l'ajout d'un champ cach notre formulaire, appel jeton qui contient une valeur que seuls lutilisateur et ladministrateur sait. Cela garantit que l'utilisateur et non une autre entit soumet les donnes indiques. Symfony valide automatiquement la prsence et l'exactitude de ce jeton.

Figure 37. Contrle des champs non-rendus Le champ jeton est un champ cach et sera rendue automatiquement si nous incluons la fonction form_rest () dans notre modle, ce qui garantit que tous les champs non-rendus sont transmis. V.2.3. Attaque XSS

Cest un type d faill de scurit des sits web, permettant dinjecter du contenu dans une page. Lattaquant peut utiliser des langages pris en charge par le navigateur, et avec larriv de nouvelle technologies comme HTML5, il peut galement faire la redirection vers un autre site pour du hameonnage ou encore de voler la session en rcuprant les cookies. Solution Ne pas autoriser les caractres spciaux. Rendre les cookies utilisables uniquement par lapplication. Avec Symfony 2, cest Twig , le moteur de template, qui en a la charge. Pour cela, tous les caractres spciaux des variables affiches dans la page sont chapps.

Projet Fin dEtude SFARI Marwa

55

Dveloppement dune application web scurise

2013

Figure 38. Solution contre l'attaque XSS V.2.4. Les saisies automatises

Si lapplication est accessible au grand public, il est galement important de vrifier quil sagit bien dun utilisateur humain derrire le navigateur, et non dune machine envoyant des requtes automatises. Solution La protection contre les saisies automatises peut se faire via lutilisation de Captcha . Il sagit dun systme trs rpandu sur internet demandant lutilisateur de saisir au clavier les caractres quil distingue dans une image. Limage est considre comme suffisamment complexe pour quun processus automatis ne puisse en extraire les caractres, et suffisamment lisible pour un utilisateur humain . Cest utile par exemple si lapplication dispose dun formulaire dinscription. On souhaite en gnral viter que des robots sinscrivent sur le site pour ensuite y diffuser du contenu non souhait. Dans Symfony 2, il nexiste pas par dfaut de champs de type Captcha , donc nous allons installer ce module et limplmenter dans notre code. Aprs linstallation de ce module avec le composer.json de symfony2 nous devons le dclarer dans le fichier AppKernel.php.

Projet Fin dEtude SFARI Marwa

56

Dveloppement dune application web scurise

2013

Figure 39. Ajout du module Captcha Ensuite, nous devons configurer les paramtres du captcha : La cl prive, et la cl publique.

Figure 40. Paramtres du Captcha Finalement, il nous reste quajouter le champ Captcha dans nos formulaires.

Figure 41. Ajout du champ Captcha V.2.5. Encodage des mots de passe

Dans notre application nous crons des utilisateurs dynamiquement et nous les sauvegardons dans une base de donnes. Nous allons utiliser un algorithme de hachage complexe puis utiliser un objet d'encodage de mot de passe pour nous aider encoder les mots de passe.

Projet Fin dEtude SFARI Marwa

57

Dveloppement dune application web scurise

2013

D'abord, nous allons configurer l'encodeur pour chaque utilisateur, tel quillustr dans la figure ci-dessous :

Figure 42. Encodage des mots de passe Nous avons utilis un algorithme puissant sha512. Aussi, comme nous avons uniquement spcifi l'algorithme (sha512) sous forme de chane de caractres, le systme va par dfaut hacher notre mot de passe 5000 fois de suite et ensuite l'encoder en base64. En d'autres termes, le mot de passe a t trs fortement obscurci pour ne pas qu'il puisse tre dcod, donc il est impossible de retrouver le mot de passe depuis le mot de passe hach. Nous avons utilis des formulaires d'enregistrement pour les utilisateurs, nous devons donc pouvoir gnrer un mot de passe hach pour pouvoir le sauvegarder. Pour la dtermination du mot de passe hach nous allons agir de la manire suivante depuis notre contrleur.

Figure 43. Enregistrement du mot de passe hach Rcupration de lobjet utilisateur Aprs l'authentification, l'utilisateur courant peut tre rcupr via le

service security.context. Depuis un contrleur, cela ressemble a:

Projet Fin dEtude SFARI Marwa

58

Dveloppement dune application web scurise

2013

Figure 44. Rcupration de l'objet utilisateur V.2.6. Attaque de lhomme de milieu

Man in the middle (lattaque de lhomme de milieu) est une attaque qui a pour but de rcuprer des donnes sensibles qui transitent sur le rseau local. Cette attaque fait intervenir 3 ordinateurs : un serveur cible, un poste client et la machine ou se trouve lattaquant. Lobjectif de cette attaque est dintercepter les communications par le pirate entre deux machines, sans que ni l'une ni l'autre ne puisse se douter que le canal de communication entre elles a t compromis. Solution Le meilleur moyen de protger sa session d'un vol est de chiffrer la session entire grce au SSL. C'est un systme qui permet d'changer des informations entre deux ordinateurs de faon sre. SSL assure trois choses: Confidentialit: Il est impossible d'espionner les informations changes. Intgrit: Il est impossible de truquer les informations changes. Authentification: Il permet de s'assurer de l'identit du programme, de la personne ou de l'entreprise avec laquelle on communique.

Projet Fin dEtude SFARI Marwa

59

Dveloppement dune application web scurise

2013

Nous allons commencer implmenter notre solution, pour cela nous allons faire un contrle des URLs. Les routes menant aux formulaires dinscription, de contact, dauthentification, ainsi que les comptes administrateurs et utilisateurs, utiliserons le protocole HTTPS.

Figure 45. Connexion via HTTPS Pour tester le bon fonctionnement de notre configuration nous nous somme refugi linstallation dopenSSL qui est une version libre de SSL et qui va nous aider contrler et vrifier notre code source.

Figure 46. Ajout de l'extension php_openssl Aprs lactivation de lextension openssl, nous allons commencer son installation. La figure ci-dessous prsente la procdure dinstallation dopenssl.

Projet Fin dEtude SFARI Marwa

60

Dveloppement dune application web scurise

2013

Figure 47. Installation d'openssl La figure ci-dessous prsente le rsultat de linstallation :

Figure 48. Vrification de l'installation d'openssl Les certificats obtenus :

Figure 49. Certificat obtenu

VI.

Test et validation de lapplication HedylSystems

Dans cette phase, nous allons tester le bon fonctionnement de notre application et les solutions et mthodes de scurit que nous avons appliques. Commenant par vrifier la procdure denvoie dun mail a partir du formulaire de contact.

Projet Fin dEtude SFARI Marwa

61

Dveloppement dune application web scurise

2013

Scnario 1 : Envoie dun mail pour contacter le centre HedylSystems Nous avons rempli ce formulaire pour tester les champs et vrifier que le message a bien t envoy au webmaster.

Figure 50. La page contact Aprs lenvoie du message, un message-flash apparat pour confirmer lenvoie du message, et un e-mail sera envoyer a ladministrateur.

Figure 51. Message-flash Le corps du message envoy est dcrit grce au fichier Twig prsent prcdemment.

Figure 52. Message reu partir de la page contact

Projet Fin dEtude SFARI Marwa

62

Dveloppement dune application web scurise

2013

Scnario 2 : Remplir le formulaire dinscription Contrle de saisie :

Nous allons commencer par tester les champs vides.

Figure 53. Test des champs vides Grce aux validateurs que nous avons prsents prcdemment, le contrleur va vrifier les donnes avant quil envoie vers la base de donnes.

Figure 54. Validation des donnes de formulaire

Projet Fin dEtude SFARI Marwa

63

Dveloppement dune application web scurise

2013

Enregistrement dans la base de donnes :

Aprs la validation des donnes, le contrleur va effectuer lenregistrement dans la base de donnes.

Figure 55. Enregistrement d'un membre La figure ci-dessous montre lenregistrement des mots de passe dans la base de donnes.

Figure 56. Vrification du mot de passe hach Le mot de passe a bien t sauvegard hach. On constate lexistence dun autre champ crypt salt , Ce champ est cod avec lalgorithme md5 , cest une chaine qui va tre concatner avec le mot de passe lors dauthentification pour plus de scurit.

Figure 57. Authentification dutilisateur russi

Projet Fin dEtude SFARI Marwa

64

Dveloppement dune application web scurise

2013

Scnario 3 : Accs lespace membre Ce scnario montre laccs dun membre du centre son espace, il trouvera des vidos qui concernent son type de formation ainsi que des cours tlcharger et des tutoriels. Lorsquun membre clique sur une vido pour visionner, elle sera affiche dans une autre page, comme montre la figure suivante.

Figure 58. Visionner une video Un membre peut aussi laisser des commentaires qui seront visibles aux autres membres.

Figure 59. Commenter une video

Projet Fin dEtude SFARI Marwa

65

Dveloppement dune application web scurise

2013

VII.

Conclusion

Lors de ce chapitre nous avons tudi le dveloppement rel de notre application, et nous avons russi mettre en pratique les tudes effectues dans les premiers chapitres fin de tester le bon fonctionnement de notre application. Dans la deuxime partie de ce nous avons pu mettre en uvre la partie scurit de notre application, ltude que nous avons ralise concernant les types dattaque et les vulnrabilits des applications web, nous a aid a trouv des mthodes et des solutions de scurit que nous avons appliques pour aboutir finalement a une application fiable et scuris

Projet Fin dEtude SFARI Marwa

66

Conclusion gnrale

Le stage de fin dtudes que nous avons effectu auprs du centre de formation HedylSystems tait une occasion propice pour dcouvrir le milieu professionnel dans ses aspects de gestion courante, des complexits et des dfis surmonter pour la mise au point dune application web scurise. Tout au long de ce projet, nous avons essay de dvelopper une application web permettant aux membres du centre de suivre une formation distance et ladapter aux nouvelles exigences imposs par le march, lune des plus principales contraintes est la scurit, cest la phase que nous avons consacr le plus de temps pour aboutir une application fiable et bien scuris. Pour mener bien le travail qui nous a t confi, nous nous sommes bass sur les nouvelles technologies du dveloppement web existantes sur le march, pour ensuite concevoir une application plus fiable et mieux aboutit. Dans le premier chapitre nous avons prsent les concepts de notre travail, et nous avons pu tirer les diffrentes difficults rencontres par lorganisme aprs avoir effectu une tude de lexistant. Dans le second chapitre, Nous avons men une tude approfondie sur les applications web et leurs vulnrabilits. Ensuite, nous avons ralis une recherche sur les dernires technologies utilises dans le dveloppement des applications. Dans le troisime chapitre nous avons prsent ltude conceptuelle de notre projet dans lequel nous avons russi a modlis notre solution. Enfin, le dernier chapitre t le fruit de toutes les recherches que nous avons effectu prcdemment, et dans lequel nous avons illustr lapproche que nous avons propos pour raliser notre projet et pour aboutir a une application fonctionnel. Ce stage nous a permis denrichir nos connaissances en matire du dveloppement web, surtout au niveau de la maitrise de plusieurs outils de conception et de dveloppement

notamment Netbeans, Photoshop, Dreamweaver, et de se familiariser avec des nouvelles langages comme HTML5, CSS3, TWIG, PHP5. Ceci dit, nous ne pensons pas que notre application web soit parfaite, nous pourrons lamliorer en ajoutant dautres fonctionnalits comme limplmentation dune solution de communication vido, audio la visioconfrence tout en assurant plus de scurit. Ce travail qui a dur quatre mois, ne constitue pas une fin en soi, mais une base pour mettre en place une application bien plus performante.

Netographie

[1] : http://www.via.ecp.fr/viaform/2004-05/formation-php.pdf [2] : ftp://ftp2.developpez.biz/developpo/java/coursjava/java.pdf [3] :http://www.fr.takenew.info/asp-dot-net-avantages-et-inconvenients-pour-le-developpementweb [4] : http://fr.wikipedia.org/wiki/Hypertext_Markup_Language [5] : http://www.webpotentiel.com/theme/63/langage-site/langage-css [6] :http://www.blogduwebdesign.com/developpement/focus-sur-les-differents-langages-dedeveloppement-web/320 [7] :http://fr.wikipedia.org/wiki/Django_(framework) [8] : http://fr.wikipedia.org/wiki/Zend_Framework [9] : http://www.mti.epita.fr/blogs/2011/09/20/zend-framework-vs-symfony/ [10] : http://www.eoxia.com/site-web/installer-symfony-en-local-avec-wamp/ [11] : http://fr.wikipedia.org/wiki/Application_web

Rsum
Ce projet de fin dtudes vise la conception et le dveloppement dune application web, permettant un utilisateur de sinscrire au centre de formation HedylSystems et de suivre une formation distance en toute scurit. Notre organisme daccueil avait un site vitrine contenant le minimum de fonctionnalit et constitu de quelques pages web. Lapplication web courante prsente plusieurs amliorations au niveau des fonctionnalits ainsi quau niveau de larchitecture et de la scurit de lapplication, puisquelle est construite avec le nouveau framework php5 symfony2 utilisant un moteur de template twig pour la couche prsentation, doctrine pour la couche mtier et MySQL pour la couche de donnes. Mots cls : modle MVC, PHP5, Twig, contrle daccs, scurit, symfony2.

Abstract
This graduation project involves the design and development of a web application that allows a user to enroll in a training center "HedylSystems" and follow distance learning safely. Our host organization had a showcase site that has limited functionality and consists of a few web pages. The current web application presents several improvements in functionality as well as the architecture and application security, since it is built with the new Symfony2 php5 framework using a twig template engine for presentation layer, doctrine for business layer and MySQL for data layer. Keywords: MVC model, PHP5, Twig, control access, security, symfony2.

. . framework php5 Doctrine " Template Twig" "Samfony2" . " MySQL"

. MVC model, PHP5, Twig, control access, security, symfony2

Signatures des encadrants

Mejdi CHEBBI

Sonia BEN REJEB CHAOUCH

Vous aimerez peut-être aussi