Vous êtes sur la page 1sur 14

I.

Introduction Générale :
II. Étude bibliographique :
1. L'environnement client-serveur :
2. Développent Web :
a) Présentation Générale :

L e développement Web est un terme général pour le travail impliqué


dans le développement d'un site ou une application Web pour Internet
(World Wide Web) ou un intranet (un réseau privé). Le
développement Web peut aller du développement de la seule page statique
statique de texte simple vers les applications Internet les plus complexes.

Parmi les professionnels du Web, le «développement web» se réfère


généralement aux principaux aspects non liés à la conception de la
construction de sites Web: la rédaction de balisage et de codage. Plus
récemment, le développement Web est devenu la création de systèmes de
gestion de contenu ou de CMS. Ces CMS peuvent être créés à partir de zéro,
exclusif ou open source.
Il est toujours important de se rappeler que le développement web est
généralement divisé en codage côté client, couvrant des aspects tels que la
mise en page et la conception et le codage côté serveur, qui couvre la
fonctionnalité du site Web et les systèmes de back-end.
Le développement Web tient compte de nombreuses considérations de
sécurité, telles que la vérification des erreurs de saisie des données à travers
les formulaires, le filtrage des sorties et le cryptage. Des pratiques
malveillantes telles que l'injection SQL peuvent être exécutées par des
utilisateurs mal intentionnés avec seulement une connaissance primitive du
développement web Les scripts peuvent être utilisés pour exploiter des sites
Web en accordant un accès non autorisé aux utilisateurs malveillants qui
tentent de collecter des informations telles que les adresses e-mail, les mots de
passe et les contenus protégés, comme les numéros de cartes de crédit.
Une partie de cette situation dépend de l'environnement du serveur sur lequel
le langage de script, comme ASP, JSP, Perl, PHP, Python, Perl ou Ruby en
cours d'exécution.

b) Techniques et Utilisations :
U ne application Web est une application logicielle client-serveur dans
laquelle le client (ou l'interface utilisateur) s'exécute dans un
navigateur Web. Les applications Web communes comprennent le
Webmail, les ventes au détail en ligne, les wikis, les services de messagerie
instantanée ...
Les applications sont généralement divisées en morceaux logiques appelés
«niveaux» (tiers), où chaque niveau reçoit un rôle. Les applications
traditionnelles se composent uniquement de 1 niveau, qui réside sur la
machine cliente, mais les applications Web se prêtent à une approche à
plusieurs niveaux.

Figure :Architecture 1 tiers

La structure la plus commune est l'application à trois niveaux. Dans sa forme


la plus commune, les trois niveaux sont appelés présentation, application et
stockage, dans cet ordre. Un navigateur Web est le premier niveau
(présentation), un moteur utilisant une technologie de contenu Web
dynamique (comme ASP, CGI, ColdFusion, Dart, JSP / Java, Node.js, PHP,
Python ou Ruby on Rails) est le niveau intermédiaire (Logique d'application),
et une base de données est le troisième niveau (stockage). Le navigateur Web
envoie des requêtes au niveau intermédiaire, qui les dessert en effectuant des
requêtes et des mises à jour par rapport à la base de données et génère une
interface utilisateur.
Figure 2:Architecture 3 tiers

Les violations de l'sécurité sur ces types d'applications sont une préoccupation
majeure car elles peuvent impliquer à la fois des fuites d'informations de
l'entreprise et ou les données privées des clients. La protection de ces actifs est
une partie importante de toute application Web. Cela inclut les processus
d'authentification, d'autorisation, de gestion d'actifs, de saisie et
d'enregistrement et d'audit…
Les applications Web modèles Cloud Computing sont des logiciels en tant que
service (SaaS).
La création d'une application Web est souvent simplifiée par des logiciels
open source tels que Django, Ruby on Rails, Symfony ou Laravel appelés
frameworks d'applications Web.
Ces cadres facilitent le développement rapide des applications en permettant à
une équipe de développement de se concentrer sur les parties de l’application
qui sont uniques à leurs objectifs sans avoir à résoudre des problèmes de
développement communs tels que la gestion des utilisateurs…
L'utilisation de frameworks d'applications Web peut souvent réduire le nombre
d'erreurs dans un programme, à la fois en simplifiant le code.

c) PHP :

P HP est un langage de script côté serveur conçu principalement pour le


développement web, mais aussi utilisé comme langage de
programmation à usage général. Créée à l'origine par Rasmus Lerdorf
en 1994, l'implémentation de référence PHP est maintenant produite par The
PHP Development Team. PHP était à l'origine de Personal Home Page, mais il
représente l'acronyme récursif PHP: Hypertext Preprocessor.
PHP est un langage de script à usage général qui est particulièrement adapté
au développement Web côté serveur, auquel PHP fonctionne généralement sur
un serveur Web, généralement pour créer un contenu dynamique de la page
Web.
PHP peut également être utilisé pour les scripts de ligne de commande et les
applications d'interface utilisateur graphique côté client (GUI). PHP peut être
déployé sur la plupart des serveurs Web, de nombreux systèmes d'exploitation
et de plates-formes, et peut être utilisé avec de nombreux systèmes de gestion
de bases de données relationnelles (SGBDR). La plupart des fournisseurs
d'hébergement Web prennent en charge PHP pour être utilisés par leurs
clients.
PHP agit principalement comme un filtre, prenant une entrée à partir d'un
fichier ou d'un flux contenant des instructions de texte et / ou PHP et délivrant
un autre flux de données. Le résultat le plus souvent sera HTML, bien qu'il
puisse être JSON, XML ou des données binaires telles que des formats
d'image ou audio.
Depuis PHP 4, l'analyseur PHP compile l'entrée pour produire un bytecode
pour le traitement par le moteur Zend, offrant des performances améliorées par
rapport à son prédécesseur interprète.
À l'origine conçu pour créer des pages Web dynamiques, PHP se concentre
principalement sur les scripts côté serveur, et il est similaire aux autres
langages de script côté serveur qui fournissent un contenu dynamique à partir
d'un serveur Web vers un client, tel que ASP.NET de Microsoft , Les pages
JavaServer de Sun Microsystems.
PHP a également attiré le développement de nombreux frameworks logiciels
qui fournissent des blocs de construction et une structure de conception pour
promouvoir le développement rapide d'applications (RAD). Certains d'entre
eux incluent PRADO, CakePHP, Symfony, CodeIgniter, Laravel, Yii
Framework, Phalcon et Zend Framework, offrant des fonctionnalités similaires
à celles d'autres frameworks Web.
L'architecture LAMP est devenue populaire dans l'industrie web comme
moyen de déploiement d'applications Web. PHP est couramment utilisé
comme P dans ce paquet aux côtés de Linux, Apache et MySQL, bien que le P
puisse également se référer à Python, Perl, ou un mélange des trois. Des
paquets similaires, WAMP et MAMP, sont également disponibles pour
Windows et MacOS, la première lettre correspondant au système
d'exploitation respectif. Bien que PHP et Apache soient fournis dans le cadre
de l'installation de la base MacOS, les utilisateurs de ces packages recherchent
un mécanisme d'installation plus simple qui peut être plus facilement mis à
jour.
d) AJAX :

A jax est un ensemble de techniques de développement Web utilisant de


nombreuses technologies Web côté client pour créer des applications
Web asynchrones. Avec Ajax, les applications Web peuvent envoyer
des données et récupérer à partir d'un serveur de manière asynchrone (en
arrière-plan) sans interférer avec l'affichage et le comportement de la page
existante. En découplant la couche d'échange de données de la couche de
présentation, Ajax permet aux pages Web et, par extension, les applications
Web, de modifier dynamiquement le contenu sans avoir besoin de recharger la
page entière.
Ajax n'est pas une technologie unique, mais plutôt un groupe de technologies.
HTML et CSS peuvent être utilisés en combinaison pour marquer et les
informations de style. Le DOM est accessible avec JavaScript pour afficher
dynamiquement - et permettre à l'utilisateur d'interagir avec - les informations
présentées. JavaScript et l'objet XMLHttpRequest fournissent une méthode
pour échanger des données de manière asynchrone entre le navigateur et le
serveur pour éviter les rechargements de page complète.

e) Framework Laravel :
L aravel est un framework web gratuit PHP open source créé par Taylor
Otwell et destiné au développement d'applications Web suivant le
modèle d'architecture modèle-vue-contrôleur (MVC). Certaines des
fonctionnalités de Laravel sont un système d'emballage modulaire avec un
gestionnaire de dépendance dédié, différentes façons d'accéder aux bases de
données relationnelles, les utilitaires qui aident au déploiement et à la
maintenance des applications.
En mars 2015, Laravel est considéré comme l'un des frameworks PHP les plus
populaires, avec Symfony, Nette, CodeIgniter, Yii2 et d'autres frameworks
Le code source de Laravel est hébergé sur GitHub et autorisé sous les termes
de la licence MIT
Les fonctionnalités suivantes servent de points de conception clés de Laravel :
 Eloquent ORM (mapping objet-relationnel) est une implémentation
PHP avancée du motif d'enregistrement actif, elle fournit des méthodes
internes pour appliquer des contraintes sur les relations entre les objets
de la base de données.
 Le générateur de requêtes, disponible depuis Laravel 4, offre une
alternative d'accès à la base de données plus directe à l'ORM éloquent.
Au lieu d'exiger que les requêtes SQL soient écrites directement, le
générateur de requêtes Laravel fournit un ensemble de classes et de
méthodes capables de générer des requêtes par programme.
 Le routage inverse définit une relation entre les liens et les itinéraires,
ce qui permet de modifier ultérieurement les itinéraires pour se
propager automatiquement dans les liens pertinents. Lorsque les liens
sont créés en utilisant les noms des routes existantes, Laravel crée
automatiquement les identificateurs de ressources uniformes (URI)
appropriés.
 Les contrôleurs restants offrent une manière facultative de séparer la
logique derrière le service des requêtes HTTP GET et POST.
 Les migrations fournissent un système de contrôle de version pour les
schémas de base de données, permettant d'associer les modifications
dans la base de code de l'application et les modifications requises dans
la mise en page de la base de données. Par conséquent, cette
fonctionnalité simplifie le déploiement et la mise à jour des
applications basées sur Laravel.

3. Modèle MVC :
a) Présentation :

M odel-View-Vontroller (MVC) est un modèle d'architecture


logicielle (design pattern) pour la mise en œuvre d'interfaces
utilisateur sur les ordinateurs. Il divise une application donnée en
trois parties interconnectées. Le modèle de conception MVC découpe ces
composants principaux, ce qui permet une réutilisation efficace du code et un
développement parallèle.
Traditionnellement utilisé pour les interfaces utilisateur graphiques de bureau
(GUI), cette architecture est devenue populaire pour la conception
d'applications Web et même de clients mobiles, de bureau et autres.

b) Architecture :
 Le modèle est la composante centrale du modèle MVC. Il décrit le
comportement de l'application en termes de domaine du problème,
indépendamment de l'interface utilisateur. Il gère directement les
données et la logique de l'application.
 Une vue peut être toute représentation de sortie d'informations, comme
un graphique ou un diagramme(GUI).
 Le contrôleur, accepte l'entrée et la convertit en commandes pour le
modèle ou la vue.

c) Butes :

M VC a été largement adopté comme une architecture pour les


applications World Wide Web
Parce que MVC découpe les différents composants d'une application, les
développeurs peuvent travailler en parallèle sur différents composants sans
impact et / ou blocage les uns des autres. Par exemple, une équipe pourrait
diviser ses développeurs entre le front-end et l'arrière-plan. Les développeurs
de back-end peuvent concevoir la structure des données et comment
l'utilisateur interagit avec elle sans exiger que l'interface utilisateur soit
complétée. À l'inverse, les développeurs de front-end sont en mesure de
concevoir et tester la mise en page de l'application avant que la structure de
données ne soit disponible.
En créant des composants indépendants les uns des autres, les développeurs
peuvent réutiliser les composants rapidement et facilement dans d'autres
applications. La même vue (ou similaire) pour une application peut être
refacturée pour une autre application avec des données différentes, car la vue
consiste simplement à gérer la manière dont les données sont affichées à
l'utilisateur.

4. Développent Hybride:
a) Présentation Générale :
U ne application hybride est une application utilisant le navigateur web
intégré d’un Smartphone et les technologies Web (HTML, CSS et
Javascript) pour fonctionner sur différents OS . Une telle application
utilise les fonctionnalités natives des Smartphones et peut être distribuée sur
les plateformes d’applications telles que l'AppStore, le Google Play, etc.

b) Framework Ionic :

I onic est un SDK open source complet pour le développement


d'applications mobiles hybrides. Construit sur AngularJS et Apache
Cordova, Ionic fournit des outils et des services pour développer des
applications mobiles hybrides utilisant des technologies Web telles que CSS,
HTML5 et Sass. Les applications peuvent être construites avec ces
technologies Web. Ionic a été créé par Max Lynch, Ben Sperry et Adam
Bradley de Drifty Co. en 2013
Par rapport aux applications hybrides, le mélange du code ionique avec le
code natif de l'application mobile dans PhoneGap (maintenant appelé Apache
Cordova) permet une performance supérieure du produit résultant: l'utilisation
d'AngularJS (plutôt que jQuery) permet à Ionic de compter sur l'accélération
matérielle natif (plutôt que DOM étendu manipulation). Ionic exploite les
transitions CSS et les transformations pour l'animation afin de tirer parti du
GPU et de maximiser le temps disponible du processeur.

5. Web Service
a) Présentation Générale :

L e terme "service Web" décrit une manière standardisée d'intégrer des


applications basées sur le Web en utilisant les normes ouvertes XML,
SOAP, WSDL et UDDI sur un squelette de protocole Internet. XML
est le format de données utilisé pour contenir les données et fournir des
métadonnées autour de lui, SOAP est utilisé pour transférer les données,
WSDL est utilisé pour décrire les services disponibles et UDDI répertorie les
services disponibles.
Un service Web est une méthode de communication entre deux appareils
électroniques sur un réseau. Il s'agit d'une fonction logicielle fournie à une
adresse réseau sur le Web avec toujours le service comme dans le concept
d'informatique utilitaire.
Différents systèmes logiciels ont souvent besoin d'échanger des données entre
eux et un service Web est une méthode de communication qui permet à deux
systèmes logiciels d'échanger ces données sur Internet. Le système logiciel qui
demande des données s'appelle un demandeur de service, alors que le système
logiciel qui traiterait la demande et fournirait les données s'appelle un
fournisseur de services.
Les différents logiciels peuvent utiliser des langages de programmation
différents et, par conséquent, il existe un besoin d'une méthode d'échange de
données qui ne dépend pas d'un langage de programmation particulier. La
plupart des logiciels peuvent cependant interpréter les balises XML. Ainsi, les
services Web peuvent utiliser des fichiers XML pour l'échange de données.
Les règles de communication entre différents systèmes doivent être définies,
telles que:
 Comment un système peut demander des données à partir d'un autre
système.
 Quels paramètres spécifiques sont nécessaires dans la demande de
données.
 Quelle serait la structure des données produites. (Normalement, les
données sont échangées dans des fichiers XML et la structure du
fichier XML est validée contre un fichier .xsd).
 Quels messages d'erreur s'afficher lorsqu'une certaine règle de
communication n'est pas observée, faciliter le dépannage.
Toutes ces règles de communication sont définies dans un fichier appelé
WSDL (Web Services Description Language), qui possède une
extension .wsdl.

Architecture des services Web: le fournisseur de service envoie un fichier


WSDL à UDDI. Le demandeur de service contacte UDDI pour savoir qui est
le fournisseur pour les données dont il a besoin, puis il contacte le fournisseur
de services en utilisant le protocole SOAP. Le fournisseur de services valide la
demande de service et envoie des données structurées dans un fichier XML, en
utilisant le protocole SOAP. Ce fichier XML serait validé à nouveau par le
demandeur de service à l'aide d'un fichier XSD.
Un répertoire appelé UDDI (Description universelle, Découverte et
Intégration) définit quel système logiciel doit être contacté pour quel type de
données. Donc, lorsqu'un système logiciel a besoin d'un rapport particulier /
des données, il ira à l'UDDI et découvrira quel autre système il peut contacter
pour recevoir ces données. Une fois que le système logiciel découvre quel
autre système il devrait contacter, il entrerait alors en contact avec ce système
en utilisant un protocole spécial appelé SOAP (Simple Object Access
Protocol). Le système du fournisseur de service valait d'abord la demande de
données en se référant au fichier WSDL, puis traite la demande et envoie les
données sous le protocole SOAP.
Figure 3: SOAP

b) Les Services Web RESTful :

L es services Web RESTful sont essentiellement des services Web basés


sur architecture REST. Dans REST Architecture, tout est une
ressource. Les services Web RESTful sont légers, hautement évolutifs
et maintenables et sont très utilisés pour créer des API pour les applications
Web.
Une API Web est un développement dans les services Web où l'accent a
évolué vers des communications basées sur le transfert d'état représentatif
(REST) plus simples.Les API RESTful ne nécessitent pas de protocoles de
service Web basés sur XML (SOAP et WSDL).
REST signifie transfert d'état REpresentational. REST est une architecture
basée sur les standards Web et utilise le protocole HTTP pour la
communication de données. Il tourne autour des ressources où chaque
composant est une ressource et une ressource est accessible par une interface
commune utilisant des méthodes standard HTTP. REST a été introduit par
Roy Fielding en 2000.

Dans l'architecture REST, un serveur REST suffit d'accéder aux ressources et


le client REST accède et présente les ressources. Ici, chaque ressource est
identifiée par les URI / identifiants globaux. REST utilise diverses
représentations pour représenter une ressource comme Text, JSON et XML.
JSON est maintenant le format le plus populaire utilisé dans les services Web.
6. Sécurité Informatique :
a) Introduction :
b) Injection SQL :

I njection SQL est une vulnérabilité de sécurité qui permet à un attaquant de


modifier les instructions SQL de backend en manipulant les données
fournies par l'utilisateur.
La commande SQL qui, lorsqu'elle est exécutée par une application Web, peut
également exposer la base de données back-end.
Un attaquant peut injecter du contenu malveillant dans les champs
vulnérables.
Les données sensibles comme les noms d'utilisateur, les mots de passe, etc.
peuvent être lues à partir de la base de données.
Les données de base de données peuvent être modifiées (Insérer / Mettre à
jour / Supprimer).
Les opérations d'administration peuvent être exécutées sur la base de données
Objets vulnérables :
 Champs de saisie
 URL interagissant avec la base de données.

c) Cross Site Scripting :

L es scripts de cible de vulnérabilités XSS sont intégrés dans une page


qui sont exécutées sur le côté client, c'est-à-dire sur le navigateur
utilisateur. Ces défauts peuvent se produire lorsque l'application prend
des données non fiables et l'envoie au navigateur sans validation correcte.
Les attaquants peuvent utiliser XSS pour exécuter des scripts malveillants sur
les utilisateurs dans ce cas, les navigateurs victimes. Étant donné que le
navigateur ne peut pas savoir si le script est fidèle ou non, le script sera
exécuté et l'attaquant peut détourner les cookies de session, défiler des sites
Web ou rediriger l'utilisateur vers un site Web indésirable et malveillant.
XSS est une attaque qui permet à l'attaquant d'exécuter les scripts sur le
navigateur de la victime.

d) Cross Site Request Forgery (CSRF):

U ne attaque CSRF oblige le navigateur d'une victime connectée à


envoyer une demande HTTP forgée, y compris le cookie de session
de la victime et toute autre information d'authentification intégrée
automatiquement, à une application Web vulnérable.
Un lien sera envoyé par l'attaquant à la victime lorsque l'utilisateur clique sur
l'URL lorsqu'il est connecté au site Web d'origine, les données seront volées
sur le site.

e) Failure to restrict URL Access

L es applications Web vérifient les droits d'accès URL avant de rendre


les liens et les boutons protégés. Les applications doivent effectuer des
contrôles de contrôle d'accès similaires chaque fois que ces pages sont
accessibles.
Dans la plupart des applications, les pages privilégiées, les emplacements et
les ressources ne sont pas présentés aux utilisateurs privilégiés.
Par une hypothèse intelligente, un attaquant peut accéder aux pages
privilégiées. Un attaquant peut accéder à des pages sensibles, invoquer des
fonctions et afficher des informations confidentielles.

f) Protection insuffisante des couches de transport

D écrit l'échange d'informations entre l'utilisateur (client) et le serveur


(application). Les applications transmettent fréquemment les
informations sensibles comme les détails d'authentification, les
informations de carte de crédit et les jetons de session sur un réseau.
En utilisant des algorithmes faibles ou en utilisant des certificats expirés ou
non valides ou en ne prenant pas SSL, vous pouvez autoriser la
communication à être exposée à des utilisateurs non fiables, ce qui peut
compromettre une application Web ou à voler des informations sensibles.

III. Problématique et Objectifs du Stage :


1. Présentation de la Société :
a) Présentation générale :
b) Structure administrative et ressource humaine :

2. Motivation :
3. Présentation du Projet :
4. Etude de L’existence :
a) Description de l'existant :
b) Critique de l'existant :
c) Solution proposée :

5. Impact
IV. Analyse et conception :
1. Etude des Besoins :
a) Introduction :
b) Besoins fonctionnels :
c) Besoins non fonctionnels :

2. Approche de Résolution :
a) Introduction :
b) Architecture :
c) Choix conceptuels :
d) Méthode de développement :

3. Conception :
a) Introduction :
b) Formalisme de modélisation :
c) Modélisation dynamique :
d) Conclusion :

4.  Moyens Logiciels et Techniques :


a) Introduction :
b) Environnement matériel :
c) Environnement logiciel :

V. Mise en œuvre :
1. Scénario de Test :
a) Interface d'authentification :
b) Interface principale :
c) Interface de gestion des projets :
d) Processus de création d’une application :

2. Test de Sécurité
a) Introduction
b) Phase de Test
c) Outils
d) Conclusion

VI. Conclusion :

Vous aimerez peut-être aussi