Repport SUP
Repport SUP
Repport SUP
Réalisé par :
Encadré par :
Enfin, mes remerciements vont à tous les enseignants de SUPMTI Oujda pour la
qualité de la formation qu'ils m’ont fournie et tous les membres du jury pour avoir accepté
de juger ce modeste travail.
A mon frère, ma sœur ainsi que toute ma famille avec tous mes
sentiment de respect, d’amour, de gratitude et de
reconnaissance.
I. PRÉSENTATION...............................................................................................................................................33
II. APPLICATION SUR LE PROJET.............................................................................................................................33
a) Diagrammes de cas d’utilisation:..........................................................................................................35
b) Descriptiosn textuelles..........................................................................................................................38
c) Diagramme de séquence .....................................................................................................................45
I. INTRODUCTION...............................................................................................................................................49
II. TYPES DE VULNÉRABILITÉS ............................................................................................................................50
III. SIMULATION D’ATTAQUES................................................................................................................................51
II.
Dans le cadre de projet de fin d’année, nous avons travaillé sur un site web sous le
nom de domaine Affaires.ma collectant toutes les nouveautés et informations qui
intéressent les marocains en général et surtout les jeunes dans leurs vie estudiantine et
professionnelle.
Affaires.ma est un site web dédié à tous ceux qui veulent trouver une promotion au
Maroc, une orientation pour les études ou bien des offres d’emplois, un annuaire et les
sociétés de locations de voitures par région avec une grille de disponibilité des voitures. Ce
site web va aider les visiteurs à l’organisation de leurs fêtes aussi en plus de ça Affaire.ma
Ce Projet, va offrir encore aux locations inscrites sur le site, une interface
d’administration qui leurs permettra de modifier leurs véhicules, les interventions réalisés
ainsi que la grille de disponibilité.
Pour réaliser un tel projet de telle grandeur, le suivie d’une méthodologie de gestion
d’une part et d’analyse et conception d’une autre part devient une obligation.
La gestion du projet est une tâche primordiale pour pouvoir faire un suivi exacte et
juste pour l’avancement du projet, La méthodologie SCRUM est utilisée pour la
gestion de ce projet.
La définition et la conception de la base de données sont l’une des étapes les plus
décisives dans la réalisation de notre projet, car elle représente la base de toute
l’application et elle est faite en utilisant MERISE.
La modélisation du système à l’aide d’une bonne méthodologie d’analyse garantie
d’une part la cohérence des données et traitements et donc la validité d’une
application et d’autre part la pérennité des développements réalisés grâce à une
« maintenabilité » accrue, cette partie est réalisée par le langage de modélisation
UML.
La situation
L'usage de l'outil n'est pas immédiat ; une préparation est indispensable pour définir
une solution informatisée.
La construction méthodique d'une solution informatique repose sur deux principes :
- une progression par étapes
- la distinction de différents niveaux d'analyse
L’analyse préalable
La conception de la solution
Le développement du projet
La mise en œuvre
Le dictionnaire de données : collecte l'ensemble des données qui seront utilisées en vérifiant
que chaque donnée est indivisible et indépendante des autres. La réalisation de ce
dictionnaire nécessite de :
Table véhicule
Id Identifiant de Entier
véhicule
Matricule Matricule de véhicule Caractère variable(255) 255
Table Assurance
Id_assurance Identifiant Entier
d’assurance
Numero_ordre Numéro d’ordre de Caractère variable(20) 20
l’assurance
Date_debut_assuran Date de début Date
ce d’activation
d’assurance
Date_fin_assurance Date de fin de Date
validité d’assurance
Prix Somme de paiement Entier
Table Vidanges
Id Identifiant de vidange Entier
Table vignettes
Id Identifiant de Entier
vignette
Numéro_ordre Numéro d’ordre de Caractère variable(20) 20
Table Enseignants
Id Identifiant Entier
d’enseignant
Nom Nom d’enseignant Caractère variable(25) 25
Table Formations
Id Identifiant de Entier
formation
Titre Titre de formation Caractère variable(20) 20
Table Masters
Id Identifiant de master Entier
Table promotions
Id Identifiant de Entier
promotion
Photo Photo de promotion Text
Table Ecoles
Id Identifiant d’école Entier
Table Filières
Id Identifiant de filière Entier
Table Organisations
Id Identifiant Entier
d’organisation
Nom Nom d’organisation Caractère variable(255) 255
Table Ouvriers
Id Identifiant d’ouvrier Entier
Table Ouvrier_demandes
Id Identifiant de Entier
demande
Nom Nom de demandeur Caractère variable(25) 25
Entité : modélisation d'un objet d'intérêt (en termes de gestion) pour l'utilisateur,
Relation : modélisation d'une association entre deux ou plusieurs entités
Cardinalités : modélisation des participations mini et maxi d'une entité à une relation
Propriétés : modélisation des informations descriptives rattachées à une entité ou
une relation
Identifiant : modélisation des propriétés contribuant à la détermination unique d'une
occurrence d’une entité.
Le MCD a pour but d’écrire de façon formelle les données qui seront utilisées par le
système d’information. Il s’agit donc d’une représentation des données, facilement
compréhensible, permettant de décrire le système d’information à l’aide d’entités. Notre
projet est composé de plusieurs systèmes, pour cela nous allons réaliser plusieurs MCD, un
MCD par domaine.
Après l’analyse des données nous avons obtenu les modèles entités relations suivants :
Ouvriers Missions
Id Numérique <O> Avoir
Id Numérique <O>
Nom Caractère (256) 1,1 0,n Libelle Caractère (256)
Adresse Texte
Tel Caractère (256)
Ville Caractère (256)
0,n
Demander
Date_limite Date
1,1
Ouv_demandes
Id Numérique Etre Nature
Nom Caractère (256) Id Numérique <O>
Habitation Tel Caractère (256) 1,1 0,n
Avoir Type Libelle Caractère (256)
Id Numérique <O> Email Caractère (256)
0,n 1,1
Libelle Caractère (256) Adresse Texte
Description Texte
Ressource
Apprenant Ecole Filiere Id Numérique
Envoyer 1,1
Nom Numérique Id Numérique Id Numérique NomRessource Texte
0,n Prenom Texte Libelle Texte Category Texte
Nom Numérique Exister
DN Date Abrev Texte
1,1 Texte 0,n
0,n Tel Adresse Texte 0,n
Page 26
Recevoir Map Texte Id Numérique Libelle Texte 1,1
... Libelle Texte ... Composer
... Cour
0,n
Enseignant 0,n Planifier Id Numérique
A partir des MCD que nous avons élaborés, nous avons abouti aux MLD suivants :
Ouvriers Missions
Id <pi> Numérique <O> Id_mission <pi> Numérique <O>
Id_mission <fi> Numérique <O>
Libelle Caractère (256)
Nom Caractère (256) Avoir Date_limite Date
Adresse Texte ...
Tel Caractère (256) Demander
Ville Caractère (256)
...
Ouv_demandes
Id <pi,fi1> Numérique <O>
Id_mission <fi2> Numérique <O> Nature
Nat_Id <fi3> Numérique <O> Etre
Id <pi> Numérique <O>
Habitation Nom Caractère (256) Libelle Caractère (256)
Id <pi> Numérique <O> Avoir Type Tel Caractère (256) ...
Libelle Caractère (256) Email Caractère (256)
Adresse Texte
Description Texte
Page 31
PK_Seance <pi> Type Texte
Pk_Enseignant <pi> Module
FK_Cour <ai1> Id_chapitre Numérique
FK_Apprenant <ai> Id <pi> Numérique <O>
FK_Groupe <ai2>
Pk_Exercice <pi>
FK_Enseigant <ai3> Libelle Texte
Admin FK_Chapitre <ai>
SommeHoraire Numérique
id <pi> Numérique <O>
Les plus utiles pour la maîtrise d’ouvrage sont les diagrammes d’activités, de cas
d’utilisation, de classe, d’objet, de séquence et d’états-transitions qui seront produit dans ce
dossier.
La notion Objet
Les cas d'utilisation tentent d'éviter tout jargon technique et essayent au contraire
d'adopter le langage de l'utilisateur final ou de l'expert du domaine. Les cas d'utilisations
sont souvent écrits à la fois par les analystes, les utilisateurs finaux ou un expert. En UML,
chaque cas d'utilisation est représenté au sein d'un diagramme de cas d'utilisation, chacun
des scénarios de celui-ci étant décrit par un ou plusieurs diagrammes dynamiques :
diagrammes d'activités, de séquence, diagrammes de communication ou d'états-transitions.
Avantages
Les cas d'utilisation sont efficaces pour le recueil des exigences sur la base des
scénarios d'utilisation d'un système car ils se focalisent sur les interactions acteurs / système
selon les choix de leurs utilisateurs. Ils permettent également de préparer les tests de
recette basés sur l'utilisation du système.
Par contre, ils masquent les règles métier derrière les interactions acteurs / système.
Cette « invisibilité directe » des règles cause des problèmes d'accès direct à ces dernières
lorsqu'on est amené à les faire évoluer suite aux changements des besoins.
Scénario
Pour donner une autre définition du cas d’utilisation, on peut dire que c’est une
collection de scénario de succès ou d’échec qui décrit la façon dont un acteur particulier
utilise un système pour atteindre une objectif.
Un scénario est une suite spécifique d’interactions entre les acteurs et le système à
l’étude. On peut dire que c’est une « instance » du cas d’utilisation, un chemin particulier
dans sa combinatoire.
Objectifs
Pré conditions
Les Pré conditions définissent ce qui doit être vrai en amont du cas d’utilisation pour
que celui-ci puisse démarrer. Elles ne sont pas testées à l’intérieur du cas d’utilisation, mais
sont tenus pour acquises. Souvent, un pré condition implique que le scénario nominal d’un
autre cas d’utilisation s’est déroulé normalement. Certains prés conditions triviales n’ont pas
besoin d’être mentionnées.
Post conditions
Les post conditions définissent ce qui doit être vrai lorsque le cas d’utilisation se
termine avec succès, qu’il s’agisse du scénario nominal ou d’un scénario alternatif.
Scénario nominal
Il s’agit là du scénario principal qui doit se dérouler sans incident et qui permet
d’aboutir au résultat souhaité.
Acteur secondaire :---------------
Scénario nominal
1. Cliquer sur se connecter
2. Saisir le Login et mot de passe
3. Valider la saisie.
4. Le système vérifie le login et passe
5. Le système détermine l’utilisateur.
6. Le système affiche le menu général.
Scénario alternatif
1. Erreur de saisie
2. Le Système affiche le formulaire de connexion une nouvelle fois ( Etape 2 )
Scénario nominal
1. Cliquer sur Ajouter véhicule
2. Le système affiche le formulaire d’ajout
Scénario alternatif
1. Erreur de saisie
2. Le Système affiche le formulaire d’ajout une nouvelle fois ( Etape 2 )
Scénario nominal
1. Cliquer sur Ajouter organisateur
2. Le système affiche le formulaire d’ajout
3. Remplir le formulaire
4. Le système vérifie les informations et leurs formes
5. Le système Upload les photos
6. Le système Enregistre dans la Base de données.
7. Le système affiche un message de confirmation.
Scénario alternatif
1. Erreur de saisie
2. Le Système affiche le formulaire d’ajout une nouvelle fois ( Etape 2 )
Scénario nominal
1. Cliquer sur Ajouter école
2. Le système affiche le formulaire d’ajout
3. Remplir le formulaire
4. Le système vérifie les informations et leurs formes
5. Le système Upload les photos
6. Le système Enregistre dans la Base de données.
7. Le système affiche un message de confirmation.
Scénario alternatif
1. Erreur de saisie
2. Le Système affiche le formulaire d’ajout une nouvelle fois ( Etape 2 )
Scénario nominal
1. Cliquer sur Ajouter licence
2. Le système affiche le formulaire d’ajout
Scénario alternatif
1. Erreur de saisie
2. Le Système affiche le formulaire d’ajout une nouvelle fois ( Etape 2 )
Scénario nominal
1. Cliquer sur Ajouter Master
2. Le système affiche le formulaire d’ajout
3. Remplir le formulaire
4. Le système vérifie les informations et leurs formes
5. Le système Upload les photos
6. Le système Enregistre dans la Base de données.
7. Le système affiche un message de confirmation.
Scénario alternatif
1. Erreur de saisie
2. Le Système affiche le formulaire d’ajout une nouvelle fois ( Etape 2 )
Scénario nominal
1. Cliquer sur Ajouter formation
2. Le système affiche le formulaire d’ajout
3. Remplir le formulaire
4. Le système vérifie les informations et leurs formes
5. Le système Upload les photos
6. Le système Enregistre dans la Base de données.
7. Le système affiche un message de confirmation.
Scénario alternatif
1. Erreur de saisie
2. Le Système affiche le formulaire d’ajout une nouvelle fois ( Etape 2 )
Scénario nominal
Scénario alternatif
1. Erreur de saisie
2. Le Système affiche le formulaire d’ajout une nouvelle fois ( Etape 2 )
Scénario nominal
1. Cliquer sur Afficher résultat
2. Le système affiche la liste des Maters
3. L’administrateur clique sur le Master Concerné
4. Le système Modifie l’attribut résultat à true
5. Le système Enregistre dans la Base de données.
6. Le système affiche un message de confirmation.
Scénario alternatif
1. Pas des scénarios alternatifs
On montre ces interactions dans le cadre d'un scénario d'un Diagramme des cas
d'utilisation. Dans un souci de simplification, on représente l'acteur principal à gauche du
diagramme, et les acteurs secondaires éventuels à droite du système. Le but étant de décrire
comment se déroulent les actions entre les acteurs ou objets.
Les périodes d'activité des classes sont symbolisées par des rectangles.
Plusieurs types de messages (actions) peuvent transiter entre les acteurs et objets.
Dans la mesure où les serveurs web sont de plus en plus sécurisés, les attaques
Ainsi, la sécurité des services web doit être un élément pris en compte dès leur
conception et leur développement.
Types de vulnérabilités :
Les vulnérabilités des applications web peuvent être catégorisées de la manière suivante :
Vulnérabilités du serveur web : Ce type de cas est de plus en plus rare car
au fur et à mesure des années les principaux développeurs de serveurs web ont
renforcé leur sécurisation.
Manipulation des URL, consistant à modifier manuellement les paramètres
des URL afin de modifier le comportement attendu du serveur web, CakePHP fait l’URL
Re-Writing automatiquement.
Exploitation des faiblesses des identifiants de session et des mécanismes
d'authentification.
Injection de code HTML et Cross-Site Scripting.
Injection de commandes SQL et encore plus.
Ainsi, la quasi-totalité des vulnérabilités des services web est liée aux
négligences des concepteurs, ne faisant pas de vérifications sur le format des données
saisies par les utilisateurs.
2. Simulation d’attaques
1.SQL injection
Définition :
Comme son nom l'indique, cette attaque peut être faite en utilisant des
requêtes SQL. De nombreux développeurs web ne sont pas conscients de la façon dont
un attaquant peut manipuler les requêtes SQL. SQL-Injection peut être fait sur une
application web qui ne filtre pas les entrées de l'utilisateur et les fiducies correctement
quel que soit l'utilisateur fournit. L'idée de l'injection SQL est de faire la demande
d'exécuter des requêtes SQL indésirables.
Exemple
La plupart des applications Web ont une page de connexion. Donc, Supposons
un code PHP, avec lequel nous avons réalisé cette interface.
Solution :
Le seul moyen éprouvé pour protéger un site web contre les attaques par
injection SQL, est d'utiliser des paramètres SQL.
Les paramètres SQL sont des valeurs qui sont ajoutés à une requête au moment
de l'exécution, d'une manière contrôlée.
Les paramètres sont représentés dans l'instruction SQL par un <<? >>
Définition
XSS est très similaire à SQL-Injection. Avec SQL-Injection nous avons exploité la
vulnérabilité par injection de requêtes SQL comme entrées de l'utilisateur. Dans XSS,
nous injectons le code (essentiellement côté client scripting) au serveur distant.
Attaques XSS sont classés en deux types:
- Non-Persistent : Le script est souvent intégré dans un URL est exécuté sans
être stocké sur un serveur.
- Persistent : C’est lorsque le script est stocké sur le serveur externe (base de
données).
Il est donc récupéré et exécuté à tout moment sur le site par n’importe quel
utilisateur.
Exemple
<script type="text/javascript">alert('test');</script>
S’il s’exécute, c’est-à-dire que si la boite de dialogue « test » apparait, le site est
faillible. Donc le hacker peut exécuter des scripts, même des requêtes PHP sur votre
site.
Solution :
Il faut absolument utiliser les fonctions PHP htmlspecialchars() qui filtre les '<'
et '>', htmlentities ou strip_tags() qui filtre toutes les entités html.
3. Brute force
Définition :
Un mot de passe et la cryptographie : attaque qui ne cherche pas à déchiffrer
toutes les informations, mais continuer à essayer une liste de mots de passe différents,
des mots ou des lettres. Par exemple, une attaque par force brute simple peut avoir un
dictionnaire de tous les mots ou les mots de passe couramment utilisés et parcourir
ces mots jusqu'à ce qu'il gagne l'accès au compte. Une attaque par force brute plus
complexe consiste à essayer chaque combinaison de touches dans un effort pour
trouver le mot de passe correct qui déverrouille le cryptage. En raison du nombre de
combinaisons possibles de lettres, de chiffres et de symboles, une attaque de force
brute peut prendre beaucoup de temps pour terminer. Le type de chiffrement utilisé
(64 bits, 128 bits ou 256 bits) peut avoir un impact sur la durée d’attaque.
Exemple
Solution
Les mesures suivantes peuvent être utilisées pour se défendre contre les
attaques par force brute:
▪ Exiger les utilisateurs d'avoir des mots de passe complexes
▪ Limiter le nombre de fois qu'un utilisateur peut tenter de se
connecter.
4.Formulaire d’upload
Définition :
Un formulaire d'upload est un formulaire permettant d'envoyer des fichiers sur
le serveur d'un site Web tel que des images, des fichiers Word, Excel.... Utilisé par un
pirate, l'envoie de fichier sur site via formulaire est de loin le moyen permettant de
faire le plus de dégâts. Dans le cas où son contrôle serait négligé ou mal réalisé, celui-ci
offre la possiblilité d'envoyer des fichiers PHP directement sur le serveur et fournit au
pirate une passerelle d'accès direct sur le serveur qui héberge le site.
Exemple :
Principe de piratage d'un formulaire upload :
La méthode la plus couramment utilisée pour faire passer un script PHP sur un
serveur via un formulaire d'upload est l'usurpation du type MIME (Internet Media Type
ou encore content type), le faite de renommer un fichier par (monfichier.jpg.php) …
En effet, si l'on ne touche à rien et que l'on laisse la requête HTTP se poursuivre
normalement alors le code suivant aura l'effet souhaité soit d'arrêter le script et
afficher le message d'erreur. Le fichier n'est pas une image.
Et Finalement on obtient toutes les informations sur le site, plus les droits de
modification et suppression des documents…
HTML5 est la dernière version de HTML, développé par le W3C, en collaboration avec le
WHATWG. Cette nouvelle version a été créée pour améliorer les fonctionnalités se rapportant aux
médias. Étant donné que ces derniers prennent de plus en plus de place dans le Web, il est normal
que cette nouvelle version en prenne compte.
De plus, la version précédente, HTML4, date de 1999, une dizaine d’années plus tôt. Il était donc
plus que temps que HTML se mette à jour, car beaucoup de choses ont changé sur le Web depuis ce
temps. Bien que plusieurs fureteurs Web commencent à se mettre à jour vis-à-vis les nouveaux
éléments de HTML5, celui-ci n’est pas encore à une version finale.
Le code HTML en général sert à structurer un document de page Web. C’est un langage de balise
de texte. Il est le complément des CSS, car on retrouve dans un document HTML toutes les
informations qui seront présentes sur la page Web, tandis que le CSS ajoutera une mise en forme à
ces informations. Pour ce qui est de HTML5 plus spécifiquement, il a été conçu de manière à faciliter
l’intégration de multimédia dans les pages Web. Donc, on retrouve de nouvelles balises et contrôles,
tels que des éléments audio et vidéo. Avec ces ajouts, on peut donc faire beaucoup plus de choses
seulement avec le langage HTML et utiliser moins de modules d’extensions (plug-ins).
CSS3
Le CSS est apparu pour la première fois en 1994. Il a été inventé par HåkonWium Lie, un
Norvégien d’origine, qui est aujourd’hui le directeur technique d’Opera Software. Ce langage de
programmation a été créé dans le but de permettre aux auteurs d’établir eux-mêmes la mise en
forme des pages Web qu’ils créaient dans le langage HTML. Comme à cette époque rien n’existait
pour effectuer ce travail, CSS vient combler le vide. De plus, la raison pour laquelle CSS a été créé
plutôt que d’ajouter des fonctionnalités de style au langage HTML déjà existant pour les pages Web
est que l’on voulait utiliser HTML uniquement pour la structure du document. Aujourd’hui, le W3C en
définit les standards.
CSS3 a été utilisé dans ce projet, dans plusieurs parties, comme titre exemple :
l’inportation d’un Font pour éviter le problème d’abscence de ce dérnier sur l’ordinateur de
l’utilisateur :
Fichier bootstrap.css
JavaScript est un langage de programmation de script inventé en 1995 par Brendan Eich qui
travaillait alors chez Netscape Communications Corporation. Ce langage est utilisé pour ajouter de
l’interaction aux pages Web.
Au début de l’année 2006, une bibliothèque JavaScript libre est apparue, jQuery, dans le but de
simplifier l’utilisation du langage JavaScript. Aujourd’hui, une bonne partie du développement
JavaScript utilise jQuery.
L’objectif du JavaScript, mais plus précisément de jQuery, est de rendre plus simple l’utilisation
du JavaScript. Le cadre d’application jQuery contient des fonctionnalités comme le parcours et la
modification du DOM, l’ajout d’événements, des effets et des animations, la manipulation
dynamique des feuilles de style, le support de la technologie Ajax et la possibilité d’ajouter des plug-
ins. La bibliothèque jQuery permet de rendre les applications Web encore plus riches en contenu en
ajoutant des effets visuels.
Javascript&Jquery ont été utilisé dans la plupart des pages du projet, leurs utilisation est
primordiale. Exemple d’utilisation :
o Slider
o Validation des formulaires
o Validation du CAPTCHA
o Exécution d’AJAX.
o Effets de FadeIn&FadeOut
o Effet du Hover sur le menu.
AJAX
Ajax est le nom court pour le groupe de technologies connues sous le nom
AsynchronusJavascript and Xml. Son utilisation principale est de permettre au code client d'accéder à
des fonctionnalités ou des données du serveur de manière asynchrone. De cette façon, les pages
peuvent être mise à jour sans avoir à recharger complètement la page.
Ajax n’est pas officiellement une technologie, mais plutôt l’utilisation du Javascript ou jQuery de
manière à se connecter au serveur en arrière-plan.
La méthode Ajax permet d’envoyer des requêtes aux serveurs et lorsque les réponses sont
retournées, on réalise une action particulière. Les données envoyées et reçues sont sous la forme
XML et JSON. De plus, il est possible d’agir sur le style d’une page Web avec Ajax en modifiant
certains attributs de la feuille de style CSS.
PHP5
Le PHP est l’un des langages de scripts permettant au contenu d’une page de se modifier
dynamiquement. Le code réalisé dans ce langage est contenu dans un fichier HTML, ses sections sont
interprétées par le serveur avant d’être transmises au fureteur du client. Le développement majeur
est maintenant supporté par le PHP Group sous la licence PHP. Cet outil de programmation trône au
sommet des langages Web les plus utilisés en 2010. Il est l’outil par excellence pour un nouveau venu
dans le monde d’Internet. Le PHP est devenu la référence dans le monde du web grâce de sa
gratuité, sa facilité et le nombre grandissant et le faible coût des hébergements qui souffre à travers
Internet.
Les bases de cette technologie ont vu le jour en 1994, lorsque le programmeur RasmusLerdorf
met sur pied une bibliothèque pour faciliter le développement de pages Internet. Ces scripts étaient
écrits dans le langage C (CGI) et offraient la possibilité de traiter des formulaires électroniques et de
communiquer avec une base de données. Cette première implémentation fut nommée le PHP/FI, elle
permettait de donner un aspect dynamique au Web. La première version officielle a été publiée au
mois de juin 1995.
L’objectif principal de ce langage est de rendre un site Web dynamique. PHP remplit ce but de
plusieurs façons. Tout d’abord, il donne la possibilité aux développeurs d’accéder à des données
d’une base de données avant d’afficher la page à l’utilisateur. Ensuite, il permet de conserver un état
de la connexion entre le client et le serveur. Il peut, de cette façon, afficher des informations propres
à chacun des utilisateurs. De nos jours, il tend à devenir un langage de script côté serveur comme ces
plus proches compétiteurs. De plus en plus d’outils permettent de faciliter le développement d’une
application complète, avec des bibliothèques et des cadres d’applications.
CakePHP
CakePHP est un framework PHP qui propose une architecture MVC et des outils
essentiels afin de concevoir rapidement une petite application web ou un simple blog. Basé
sur Ruby on Rails et avec une philosophie de développement (Conventions over
configurations), il a toujours su se faire une petite place parmi les grands framework comme
Laravel, Symfony ou Zend.
Longtemps décrié en raison de son choix de rétro compatibilité avec PHP 4, ce dernier a
tourné une page de son histoire en annonçant la stabilité de sa version 3.0.
L'organisation globale d'une interface graphique est souvent délicate. Bien que la façon
MVC d'organiser une interface ne soit pas la solution miracle, elle fournit souvent une
première approche qui peut ensuite être adaptée. Elle offre aussi un cadre pour structurer
une application.
Dans l'architecture MVC, les rôles des trois entités sont les suivants.
o Rôle du modèle
Le modèle offre des méthodes pour mettre à jour ces données (insertion suppression,
changement de valeur). Il offre aussi des méthodes pour récupérer ses données. Dans le cas
de données importantes, le modèle peut autoriser plusieurs vues partielles des données. Si
par exemple le programme manipule une base de données pour les emplois du temps, le
modèle peut avoir des méthodes pour avoir, tous les cours d'une salle, tous les cours d'une
personne ou tous les cours d'une groupe de Td.
o Rôle de la vue
La vue fait l'interface avec l'utilisateur. Sa première tâche est d'afficher les données
qu'elle a récupérées auprès du modèle. Sa seconde tâche est de recevoir tous les actions de
l'utilisateur (clic de souris, sélection d'une entrées, boutons, …). Ses différents événements
sont envoyés au contrôleur.
La vue peut aussi donner plusieurs vues, partielles ou non, des mêmes données. Par
exemple, l'application de conversion de bases a un entier comme unique donnée. Ce même
entier est affiché de multiples façons (en texte dans différentes bases, bit par bit avec des
boutons à cocher, avec des curseurs). La vue peut aussi offrir la possibilité à l'utilisateur de
changer de vue.
o Rôle du contrôleur
Dans le cas d'une base de données des emplois du temps. Une action de l'utilisateur
peut être l'entrée (saisie) d'un nouveau cours. Le contrôleur ajoute ce cours au modèle et
demande sa prise en compte par la vue. Une action de l'utilisateur peut aussi être de
sélectionner une nouvelle personne pour visualiser tous ses cours. Ceci me modifie pas la
base des cours mais nécessite simplement que la vue s'adapte et offre à l'utilisateur une
vision des cours de cette personne.
3.Outils utilisés
Créé en 1998, il a depuis lors été régulièrement réécrit pour intégrer chaque nouvelle
génération de logiciels Internet. Il contient de nombreuses fonctionnalités de type PHP,
HTML, CSS, JavaScript, etc.
Il est étudié dans de nombreuses facultés pour l'apprentissage des langages Internet,
dont le HTML, le PHP et le CSS. Il offre une ergonomie adaptée et un espace de travail
personnalisable. Il crée des applications Internet,il assure la réalisation des projets. Il a été
conçu pour optimiser le développement de sites web, seul ou en équipe, la correction du
code (le débogage), et le suivi (le maintien) des projets Internet.
Power AMC
Modèle Description
Modèle Libre (MLB) Permet de modéliser graphiquement selon les besoins : architecture
du système et des applications, scénarios de cas d'utilisation des
4. Captures d’écran
a. Acceuil Affaires.ma
g. BackOffice
i. Erreur de Login
k. Formulaire d’unscription
m. Modification de profil
o. Passage de reclamation
Rapport de projet de fin d’année Page 74
Rapport de projet de fin d’année Page 75
Rapport de projet de fin d’année Page 76
I. Présentation ( GUIDE de SCRUM )
Scrum : un cadre de travail permettant de répondre à des problèmes complexes et
changeants, tout en livrant de manière productive et créative des produits de la plus grande
valeur possible.
Scrum est utilisé depuis le début des années 1990 pour gérer le développement de
produits complexes. Scrum n’est pas en soi un processus ni une méthode de développement
de produits; c’est un canevas pour l’application de divers procédés et techniques de
développement.
Scrum se compose de plusieurs éléments que sont l’Équipe Scrum et ses rôles
associés, les événements, les artéfacts et les règles. Chaque élément a une raison d’être
spécifique qui le rend indispensable à la réussite de l’application de Scrum. Les règles de
Scrum sont les modalités qui lient événements, rôles et artéfacts entre eux. Ces règles sont
décrites tout au long de ce document.
Estimation
ID Importance Tache Déscription par J/H
Modélisation et conception des
0 1 sytèmes différents et dessin sous 7
PowerAMC Conception Merise et UML
1 2 Création de la BD Sous PHPMYADMIN 1
Recherche sur la sécurité Brute Force - XSS - SQLInjection -
2 3 3
informatique UploadFile
3 4 Simulation, Test et Solutions Tests avec PHP NATIVE 2
4 5 Choix et integration des templates BackOffice et FrontOffice 1
En tant qu'adminstrateur je
6 souhaite faire les mises à jours sur
5 toutes les 28 tables de Affaires.ma CRUD 10
En tant que visiteur je souhaite Avec les informations importantes
6 7 voir la litste des masters et licences dans la 1ere interface : Libelle - Ville - 2
disponibles Date importante et Domaine
En tant que visiteur je souhaite
En utilisant JQUERY ( FadeIn et
7 8 filtrer les licences et masters par 2
FadeOut )
ville
En tant que visiteur je souhaite Avec les informations importantes
8 9 voir la liste des formations dans la 1ere interface : Libelle - 1
disponibles Formateur - Durée et Domaine
b. Sprint 0 … Sprint 5
A début de la partie analyse nous avons eux l’impression que c’est un travail pénible
qui peut s’avérer inutile. Mais après un moment de réflexion, nous nous sommes dit que la
partie analyse a toujours été d’une grande importance pour tout projet informatique.
Après la réalisation des différents modèles et diagrammes de notre projet, nous avons
pu voir plus clair et avoir une idée très détaillée sur ce que nous avions à faire.