INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES DE SILIANA 1 ARCHITECTURES WEB ET RESEAUX 2éme RSI Iset Siliana [email protected] http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html ARCH WEB & RX RSI21 Mr Nizar Chaabani Objectifs 2 Objectifs Généraux Faire acquérir à l’apprenant les connaissances de base relatives à l’évolution de l’architecture web - Fournir à l’auditeur les éléments théoriques de la construction et le déploiement des applications web sécurisées et évolutives. Objectifs Spécifiques Comprendre la notion d’architecture web. Connaître les architectures N-tiers, SOA de développement web. Connaître les concepts du modèle MVC Se familiariser avec l’architecture des systèmes mobiles Maitriser l’évolution des réseaux pour la mise en ouvre de ses architectures. PRE-REQUIS ARCH WEB & RX RSI21 UE : Développement Web et multimédia 1 & 2 Mr Nizar Chaabani Eléments de Contenu 3 Client/Serveur Web : Client léger et client riche. Architectures n-tiers : 2, 3, n, SOA, etc. Modèle MVC Architecture Logicielle J2EE Architecture des systèmes mobiles Web sémantique : architecture et concepts ARCH WEB & RX RSI21 Mr Nizar Chaabani BIBLIOGRAPHIE CONSEILLÉE 4 1) 2) 3) 4) 5) Service-Oriented Architecture Compass - Business Value, Planning and Enterprise Roadmap IBM Press Books by Pearons plc. ISBN 0-13-187002-5 Berg (Martin van den), Bieberstein (Norbert),Ommeren (Erik van), SOA for Profit : guide du manager pour une SOA réussie, Sogeti et IBM, 2007 Manager avec les ERP, Architecture Orientée Services (SOA), de Jean-Louis Lequeux, Editions d'organisation, Paris, Avril 2008.ISBN 978-2-212-54094-9 Birol Berkem, Why SOA services need to be based on the Business Motivation Model (BMM) ?, June 2008 SOA, Le guide de l'architecte d'un SI agile, 3e édition, Xavier Fournier-Morel, Pascal Grojean, Guillaume Plouin, Cyril Rognon, Collection InfoPro, Dunod, 2011 ARCH WEB & RX RSI21 Mr Nizar Chaabani Introduction : 5 L'objectif premier d'un système d'information, quel qu'il soit, est de permettre à plusieurs utilisateurs d'accéder aux mêmes informations : Tout système d'information nécessite la réalisation de trois groupes de fonctions: le stockage des données, la logique applicative et la présentation. ARCH WEB & RX RSI21 Mr Nizar Chaabani 6 Stockage et accès aux données : Le système de stockage des données a pour but de conserver une quantité plus ou moins importantes de données de façon structurée. On peut utiliser pour cette partie des systèmes (très variés) qui peuvent être : des systèmes de fichiers, des mainframes, des systèmes de bases de données relationnelles, etc... ARCH WEB & RX RSI21 Mr Nizar Chaabani 7 Logique applicative : La logique applicative est la réalisation informatique du mode de fonctionnement de l'entreprise. Cette logique constitue les traitements nécessaires sur l'information afin de la rendre exploitable par chaque utilisateur. Présentation : La présentation est la partie la plus immédiatement visible pour l'utilisateur. ARCH WEB & RX RSI21 Mr Nizar Chaabani 8 Le web c'est un ensemble de machines en réseau communiquant à l'aide d'un langage commun. Le web fonctionne en mode client/serveur ARCH WEB & RX RSI21 Mr Nizar Chaabani Architectures client/serveur CONSTITUENT UNE ÉTAPE IMPORTANTE DANS L'ÉVOLUTION DES SYSTÈMES D'INFORMATIONS… Serveur web ou httpd 10 Capable d'interpréter les requêtes http arrivant sur le port associé au protocole HTTP Récupération des données d’un formulaire REQUEST_METHOD : POST ou GET CONTENT_LENGTH : Taille en octets du corps de la requête QUERY_STRING : Données transmises après le ? dans l'URL ARCH WEB & RX RSI21 Mr Nizar Chaabani 11 ARCH WEB & RX RSI21 Mr Nizar Chaabani Principaux serveurs Web 12 Apache (Unix / Linux) MIIS (Windows) Microsoft Internet Information Server Java Web Server (versions pour Unix/ Linux / Windows) et Jakarta-Tomcat (qui cohabite avec Apache) Choix de la technologie Le choix de la technologie serveur dépend : du système d’exploitation de la machine serveur du type de bases de données à interroger de la charge que doit supporter le serveur ARCH WEB & RX RSI21 Mr Nizar Chaabani Quelques notions de base 13 ** Notion 1 : Serveur de données Plate-forme gérant des bases de données à l’aide d’un SGBD ** Notion 2 : Serveur d’application Plate-forme gérant des composants applicatifs (EJB, ActiveX, Web Services) et de publication Web (Servelet, JSP, ASP, …) ** Notion 3 : Client [lourd, léger, riche] Poste de travail avec logiciel de présentation associé gérant l’IHM Client lourd : code applicatif complet Client léger : pas de code applicatif, présentation en browser Client riche : le code applicatif qu’il faut et des outils de présentation sophistiqués (intelligent, smart client) ARCH WEB & RX RSI21 Mr Nizar Chaabani web 1.0 vs web 2.0 vs web 3.0 14 ARCH WEB & RX RSI21 Mr Nizar Chaabani Rappels Web 1.0 15 Web 1.0 = Service Internet permettant de naviguer à travers des pages HTML statiques via HTTP Transmission de la requête HTTP Serveur Web Poste client Navigateur Transmission de la réponse HTTP par le serveur Web ARCH WEB & RX RSI21 Mr Nizar Chaabani Pages statiques HTML et DHTML (côté client) 16 HTML 4.01 Dernière version de HTML, les nouveaux développements portant sur XML (langage à tags ouverts) ** Notion 4 : DHTML (Dynamic HyperText Markup Language) Ensemble de spécifications complémentaires au HTML permettant de rendre une page web dynamique côté client: Jscript DOM CSS ARCH WEB & RX RSI21 Web Mr Nizar Chaabani Web 2.0 : Des techniques nouvelles 17 Ajax: XML sur HTTP en mode asynchrone via Javascript REST: Style d’architecture de services avec appels HTTP XForms: Saisie déclarative contrôlée en XML XUL/XAML: Présentation déclarative en XML RDF (Resource Description Framework): Langage d’annotation de ressource en XML … ARCH WEB & RX RSI21 Mr Nizar Chaabani Web 2.0 : Quelques notions 18 ** Notion : Web Service composant logiciel dont l’interface est décrite en XML (WSDL) et invoquée en XML (SOAP) ** Notion : Ajax technique pour échanger et manipuler les données de manière asynchrone avec le serveur Web ARCH WEB & RX RSI21 Mr Nizar Chaabani Une évolution : le Web dynamique 19 Serveur Web Traitement de la requête et sélection du fichier contenant le programme Requête http Logiciel serveur Poste client Dossier contenant les pages Serveur d'application Base de données Navigateur Réponse HTTP ARCH WEB & RX RSI21 We Mr Nizar Chaabani Application métier Client lourd : 20 Le terme « client lourd », en anglais « fat client » ou « heavy client »par opposition au client léger, désigne une application cliente graphique exécutée sur le système d'exploitation de l'utilisateur. ARCH WEB & RX RSI21 Mr Nizar Chaabani Client léger : 21 Le terme « client léger », parfois « client pauvre », en anglais « thin client » par opposition au client lourd, désigne une application accessible via une interface web (en HTML) consultable à l'aide d'un navigateur web, où la totalité de la logique métier est traitée du côté du serveur. Pour ces raisons, le navigateur est parfois appelé client universel. ARCH WEB & RX RSI21 Mr Nizar Chaabani Client riche : 22 Un « client riche » est un compromis entre le client léger et le client lourd. L'objectif du client riche est donc de : proposer une interface graphique, basée sur la syntaxe XML, obtenir des fonctionnalités similaires à celles d'un client lourd (glisser déposer, onglets, multi fenêtrage, menus déroulants, …). Il existe des standards permettant de définir une application riche : XAML (eXtensible Application Markup Language), prononcez « zammel », un standard XML proposé par Microsoft ; XUL, prononcez « zoul », un standard XML proposé par la fondation Mozilla ; Flex, un standard XML proposé par la société Macromedia ARCH WEB & RX RSI21 Mr Nizar Chaabani Architectures n-tiers : 2, 3, n, SOA, 23 ARCH WEB & RX RSI21 Mr Nizar Chaabani 24 I. Niveau d’abstraction d’une application II. Architecture 1-tiers III. Architecture 2-tiers IV. Architecture 3-tiers V. Architecture n-tiers VI. Architecture SOA ARCH WEB & RX RSI21 Mr Nizar Chaabani I. Niveau d’abstraction d’une application 25 Application La couche de présentation La logique applicative Les données ARCH WEB & RX RSI21 Mr Nizar Chaabani II. Architecture 1-tiers 26 Les trois couches applicatives sont intimement liées et s'exécutent sur le même ordinateur - Les utilisateurs se connectent aux applications exécutées par le serveur central (le mainframe) à l'aide de terminaux passifs présentation ARCH WEB & RX RSI21 applicative Mr Nizar Chaabani données Tout est sur la même machine III. Architecture 2-tiers 27 - Le poste client se contente de déléguer la gestion des données à un service spécialisé - L’ensemble des traitements applicatifs par le poste client : client lourd - La gestion des données est prise en charge par un SGBD centralisé, s'exécutant le plus souvent sur un serveur dédié - Ce dernier est interrogé en utilisant un langage de requête qui, le plus souvent, est SQL ARCH WEB & RX RSI21 Mr Nizar Chaabani III. Architecture 2-tiers 28 GET Ressources OUT ARCH WEB & RX RSI21 Mr Nizar Chaabani III. Architecture 2-tiers 29 L'architecture à deux niveaux (aussi appelée architecture 2-tier), « tier » signifiant rangée en anglais, caractérise les systèmes clients/serveurs pour lesquels : le client demande une ressource (GET), et le serveur la lui fournit directement (OUT), en utilisant ses propres ressources. ARCH WEB & RX RSI21 Mr Nizar Chaabani 30 Client : présentation + applicatif présentation applicative Client données Serveur Serveur : applicatif + gestion données données applicative Serveur ARCH WEB & RX RSI21 Mr Nizar Chaabani présentation Client IV. Architecture 3-tiers 31 - Les données sont toujours gérées de façon centralisée - La présentation est toujours prise en charge par le poste client - La logique applicative est prise en charge par un serveur intermédiaire Tier 1 Tier 2 Serveur applicatif Client Présentation ARCH WEB & RX RSI21 Logique métier Mr Nizar Chaabani Tier 3 BDD Données IV. Architecture 3-tiers 32 GET GET Ressources OUT ARCH WEB & RX RSI21 Mr Nizar Chaabani OUT IV. Architecture 3-tiers 33 Dans l'architecture à 3 niveaux, appelée architecture 3-tiers, il existe un niveau intermédiaire, c'est une architecture partagée entre : 1. Un client, c'est-à-dire l'ordinateur demandeur de ressources, équipée d'une interface utilisateur (généralement un navigateur web); 2. Le serveur d'application (ou middleware), chargé de fournir les ressources mais faisant appel à un autre serveur; 3. Le serveur de données (ou database server) qui va fournir au serveur d'application les données dont il a besoin. ARCH WEB & RX RSI21 Mr Nizar Chaabani IV. Architecture 3-tiers 34 Tiers Milieu Tiers Client Appareil mobile Browser Web Client Java Client VB/C++ ARCH WEB & RX RSI21 SGBD Serveur WAP Serveur Web Tiers Backend Serveur d’application Application ERP Parefeu … Mr Nizar Chaabani … Application mainframe IV. Architecture 3-tiers 35 Les 3 principaux tiers s'exécutent chacun sur une machine différente présentation applicative données Couche présentation Navigateur web sur machine cliente Client léger Couche applicative / métier Serveur d'applications , Serveur HTTP exécutant des composants / éléments logiciels qui génèrent dynamiquement du contenu HTML Via des requêtes à des BDD distantes Couche persistance Serveur(s) de BDD de données ARCH WEB & RX RSI21 Mr Nizar Chaabani V. Architecture n-tiers 36 ARCH WEB & RX RSI21 Mr Nizar Chaabani V. Architecture n-tiers dans l'architecture à 3 niveaux, chaque serveur (niveaux 2 et 3) effectue une tâche (un service) spécialisée : Un serveur peut donc utiliser les services d'un ou plusieurs autres serveurs afin de fournir son propre service. ARCH WEB & RX RSI21 Mr Nizar Chaabani 37 V. Architecture n-tiers 38 ARCH WEB & RX RSI21 Mr Nizar Chaabani VI. Les Architectures orientées services (SOA) 39 Les applications au sein d’une entreprise : plusieurs technologies ARCH WEB & RX RSI21 Portail WEB Application Java Application .NET 2 Application Java 2 Application .NET Portail WEB 2 Mr Nizar Chaabani VI. Les Architectures orientées services (SOA) 40 Client 1 Client 2 Client 3 Service Métier 1 Service Métier 2 Service Métier 3 Sans couche de médiation ARCH WEB & RX RSI21 Mr Nizar Chaabani VI. Les Architectures orientées services (SOA) 41 Client 1 Client 2 Client 3 Couche de Médiation Service Métier 1 Service Métier 2 Avec couche de médiation ARCH WEB & RX RSI21 Mr Nizar Chaabani Service Métier 3 VI. Les Architectures orientées services (SOA) 42 L’architecture orientée service constitue un style d’architecture basée sur le principe de séparation de l’activité métier en une série de services. » Processus métier Métier Fonctionnel Use cases Vue logique Applicatif Applications & logiciels Technique Physique Infrastructure ARCH WEB & RX RSI21 Mr Nizar Chaabani VI. Les Architectures orientées services (SOA) Web Services, l’interopérabilité sans adhérence ! 43 Permet à des systèmes hétérogènes d’interopérer Fondé sur des standards internet A travers les langages, les plateformes, les applications D’ordinateur à ordinateur A l’intérieur ou à l’extérieur d’un firewall XML, SOAP, WSDL, UDDI Technologie universellement adoptée Consensus des acteurs clés ARCH WEB & RX RSI21 Mr Nizar Chaabani VI. Les Architectures orientées services (SOA) 44 SOA et Web Service ->fonctionnement Le fonctionnement des services web repose sur un modèle en couches, dont les trois couches fondamentales sont les suivantes : •Échange , visant à décrire la structure des messages échangés par les applications. •Découverte, pour permettre de rechercher et de localiser un service web particulier •Description, dont l'objectif est la description des interfaces des services web ARCH WEB & RX RSI21 Mr Nizar Chaabani 45 ARCH WEB & RX RSI21 Mr Nizar Chaabani VI. Les Architectures orientées services (SOA) 46 Qu’est ce que SOA-> Principes Les 4 grands principes du SOA La définition des services Les services sont autonomes Les clients et les services ne partagent que des contrats La compatibilité est basée sur les règles Besoin de standardisation et la mise en commun des protocoles ( SOAP, XML,….) La pensé orientée services SOAP (Simple Object Access Protocol) est un protocole d'échange Application 1 Message à traiter Application 2 Message traité Service 1 Service 2 ARCH WEB & RX RSI21 Mr Nizar Chaabani Service Contrat Implémentation VI. Les Architectures orientées services (SOA) 47 Cycle de vie des services Identifier les services à mettre en place ; Pour cela il doit répondre à quelque critère suivant : la réutilisation l’interopérabilité, offerte via Internet à d’autre SI autorise son emploi dans une composition. ARCH WEB & RX RSI21 Mr Nizar Chaabani VI. Les Architectures orientées services (SOA) Processus 48 Modèle orienté objets (POO) Modèle orienté services (SOA) ARCH WEB & RX RSI21 Mr Nizar Chaabani VI. Les Architectures orientées services (SOA) Processus 49 Il s’agit de centraliser la logique d’un processus dans un composant dédié, qui prend en charge l’enchaînement et les règles de gestion ARCH WEB & RX RSI21 Mr Nizar Chaabani Architectures Orientées Services Administration des services 50 •Disponibilité, Versioning, Monitoring, Déploiement •Routage dynamique des requêtes et des réponses •Audit, log •Usage, facturation… •Sécurité: authentification, autorisation, cryptage, signature Intrusion Attack Timestamp Statistics Performance Transform service, request Physical Connection Switch Service Monitoring Switch Implementation Prioritization Connector XML Firewall Security Logging Access Control Identity Authentication Billing Encryption Royalties Access control ARCH WEB & RX RSI21 SLA Accounting Mr Nizar Chaabani State Mngmt State Recovery Queuing Transform Service Implementations Aggregate Composite Aggregate or Composite services Route Other Web Services Architectures Orientées Services Synthèse 51 Les architectures SOA permettent aux applications de communiquer avec les différentes ressources (données, infrastructure, processus) par l’échange de messages entre interfaces réseaux SOA est permet de définir d’ interfaces stables et cohérentes offertes sur des implémentations volatiles ARCH WEB & RX RSI21 Mr Nizar Chaabani Design Pattern MVC 52 ARCH WEB & RX RSI21 Mr Nizar Chaabani 53 Architecture web standard ARCH WEB & RX RSI21 Mr Nizar Chaabani Architecture web MVC Models, Views, and Controllers View SQL Model Database Controller Web Server HTTP Browser MVC 55 • Le Modèle-Vue-Contrôleur organise l'interface Homme-machine d'une application logicielle en – un modèle (objet métier, modèle de données) – une vue (présentation, interface utilisateur) – un contrôleur (logique de contrôle, gestion des événements, traitement) ARCH WEB & RX RSI21 Mr Nizar Chaabani MVC - objectifs 56 • séparation entre – – – les données la présentation les traitements • Meilleur réutilisabilité du code – Facilite la maintenance ARCH WEB & RX RSI21 Mr Nizar Chaabani MVC Frameworks 57 J2EE: Struts Spring MVC PHP CakePHP Strusts4php C#.NET Girders Ruby on Rails ARCH WEB & RX RSI21 Mr Nizar Chaabani MVC58- web • La logique applicative est constituée des scripts réalisant les demandes de l'utilisateur (contrôleur), des classes métiers et des classes d'accès aux données (modèle). • L'interface utilisateur sera gérée la plupart du temps par un navigateur web, elle peut éventuellement être un autre site web communiquant via des webservices. ARCH WEB & RX RSI21 Mr Nizar Chaabani MVC en image 59 •couche ihm: c'est l'interface utilisateur encore appelé interface homme machine •couche métier : c'est le coeur de l'application où réside les objets traités par l'application •couche dao : couche d'accès aux données (data access object). Cette couche permet une indépendance de la logique métier et du stockage des données associées ARCH WEB & RX RSI21 Mr Nizar Chaabani MVC en action 60 1. 2. 3. 4. 5. le client fait une demande au contrôleur. Ce contrôleur voit passer toutes les demandes des clients le contrôleur doit traiter la demande. Pour ce faire, il peut avoir besoin de la couche métier, cette dernière peut éventuellement accéder aux données (via la couche dao) le contrôleur effectue les traitements nécessaires sur / avec les objets renvoyés par la couche métier le contrôleur sélectionne et nourrit la (les) vue(s) pour présenter les résultats du traitement qui vient d'être effectuée la vue est enfin envoyée au client par le contrôleur ARCH WEB & RX RSI21 Mr Nizar Chaabani Le modèle 61 • décrit et contient les données manipulées par l'application, ainsi que des traitements propres à ces données • les résultats renvoyés par le modèle sont dénués de toute présentation • le modèle contient toute la logique métier de l'application ARCH WEB & RX RSI21 Mr Nizar Chaabani Le modèle - DAO 62 • Data Access Object – Le Dao a pour but de transformer chaque enregistrement contenu dans une bases de données en objets et inversement • Correspondance bijective (SGBD / paradigme objet) – – – – une table (appelée aussi relation) une liste d’objets une ligne d’une table (appelée aussi tuple ou enregistrement) un objet un champs de base de données un attribut d’objet une valeur d’un champs une valeur d’attribut d’un objet • L’objet est capable de se sauver / détruire en base ARCH WEB & RX RSI21 Mr Nizar Chaabani Le modèle - la couche métier 63 • Idéalement la couche métier utilise une ORM et un DAO, qui utilisent eux-mêmes la DAL – Dans ce cas là les méthodes CRUD (Create Read Update Delete) ainsi que les dépendances entre objets sont gérées par les couches supérieures • La couche métier ne contient alors que les traitements métiers (propre à l’objet) ARCH WEB & RX RSI21 Mr Nizar Chaabani Le modèle 64 ARCH WEB & RX RSI21 Mr Nizar Chaabani vue 65 • interface avec laquelle l'utilisateur interagit • présentation des résultats renvoyés par la couche modèle, après le traitement du contrôleur • recevoir toutes les actions de l'utilisateur (clic de souris, sélection d'une entrée, boutons, soumission de formulaire …) – événements envoyés au contrôleur • La vue n'effectue aucun traitement ARCH WEB & RX RSI21 Mr Nizar Chaabani contrôleur 66 • Détermine l'action à réaliser (analyse de la requête HTTP) • gestion des événements de synchronisation entre modèle et vue • Si une action nécessite un changement des données – – demande la modification des données au modèle avertit ensuite la vue que les données ont changé pour qu'elle se mette à jour ARCH WEB & RX RSI21 Mr Nizar Chaabani Contrôleur et actions 67 • Le contrôleur analyse la requête HTTP (et notamment les variables) pour déterminer l’action à exécuter – • Le contrôleur doit déterminer les vues associées (les templates HTML, mais aussi les css et js à embarquer) • Multitude d’action = contrôleur lourd Modèle MVC2 – • • Un contrôleur principal redirige vers des contrôleurs spécialisés (méthode dispatch) Les contrôleurs spécialisés exécutent effectivement l’action ARCH WEB & RX RSI21 Mr Nizar Chaabani Séquence typique de traitement MVC2 68 1. 2. 3. 4. 5. 6. la requête est analysée par le front contrôler Le contrôleur spécialisé adéquat est appelé avec la requête en paramètre Le contrôleur spécialisé demande, via l’action adéquat, au(x) modèle(s) approprié(s) d'effectuer les traitements le contrôleur spécialisé sélectionne la (les) vue(s) adaptée(s) le contrôleur spécialisé remplit la vue adaptée avec le résultats des traitements le contrôleur spécialisé renvoie la vue adaptée. ARCH WEB & RX RSI21 Mr Nizar Chaabani 69 B O NNES P RA T I Q U ES P O U R L ’ A D M I NI ST RA T IO N D ES SI T ES WEB ARCH WEB & RX RSI21 Mr Nizar Chaabani 70 Application utilisant le protocole HTTP (80) ou HTTPS (443) pour être pilotée par un utilisateur L’utilisateur a besoin d’un simple navigateur Web ou d’une application propriétaire utilisant le protocole HTTP/HTTPS pour travailler sur l’applicatif ARCH WEB & RX RSI21 Mr Nizar Chaabani Architecture d’une application Web 71 Serveur Web HTTP / HTTPS Port 80 / 443 Apache IIS Iplanet XML, Soap, HTML, Zeus Etc. etc. App. Web Application Server RMI IIOP XML Soap etc. CGI, PHP Etc. XML SQL XML JDBC etc. App. Web Client Web ARCH WEB & RX RSI21 Firewall Classique Mr Nizar Chaabani DB DB Les attaques web 72 ARCH WEB & RX RSI21 Mr Nizar Chaabani SQL Injection 73 technique qui permet aux attaquants d’injecter des requêtes SQL directement sur la base de données qui se trouve derrière un serveur Web, en manipulant l’entrée « INPUT » à une application. Exemple : sur une page d’authentification « login.asp », l’utilisateur est amené à saisir un Nom d’utilisateur « User1 » et un mot de passe « pass2012 », cette opération se traduit sous forme d’un requête SQL : SELECT * FROM Utilisateur WHERE nom= ‘User1' and mot_passe=‘pass2012’ ARCH WEB & RX RSI21 Mr Nizar Chaabani 74 Dans le cas de SQL Server, « -- » est utilisé pour mettre un commentaire jusqu’à la fin de la ligne, la requête serait alors SELECT * FROM Utilisateur WHERE username= or 1=1 Cette requête recherche dans la base de données les champs dont le nom d’utilisateur est vide en réponse à la condition. La requête va retourner tous les champs de la table utilisateur et l’attaquant serait authentifié. L’attaquant a réussi ainsi à s’authentifier sans avoir pour autant utilisé de nom d’utilisateur ni de mot de passe. ARCH WEB & RX RSI21 Mr Nizar Chaabani 75 ARCH WEB & RX RSI21 Mr Nizar Chaabani SQL INJECTION – Comment se protéger 76 Les fondamentaux défenses: Règle 1:Utilisation Prepared Statements(requêtes paramétrées) Règle 2:Utilisation de procédures stockées. Règle 3: Valider toutes les entrées utilisateur Fourni de coté serveur Les défenses additionnel: Exécuter avec le moindre des privilèges. White List Input Validation. ARCH WEB & RX RSI21 Mr Nizar Chaabani Protection contre les injections 77 ARCH WEB & RX RSI21 Mr Nizar Chaabani Protection contre les injections 78 ARCH WEB & RX RSI21 Mr Nizar Chaabani Protection contre les injections 79 ARCH WEB & RX RSI21 Mr Nizar Chaabani Protection contre les injections 80 ARCH WEB & RX RSI21 Mr Nizar Chaabani Protection contre le vol de session 81 ARCH WEB & RX RSI21 Mr Nizar Chaabani Protection contre le vol de session 82 ARCH WEB & RX RSI21 Mr Nizar Chaabani Protection contre le vol de session 83 ARCH WEB & RX RSI21 Mr Nizar Chaabani Bonnes pratiques pour l’administration des sites web 84 1)Sécurisation de la plateforme d’hébergement: Mise à jour et hardening du serveur. Détection d’intrusion réseau. Détection d’intrusion au niveau de l’hôte (HIDS). Détection antivirale Filtrage applicatif ARCH WEB & RX RSI21 Mr Nizar Chaabani Bonnes pratiques pour l’administration des sites web 85 2)Suivi et audit des logs enregistrés au niveau de la plateforme de connexion : log d’administration, log d’accès public, 3.Sauvegarde des données sensible : Applicatif base de données ARCH WEB & RX RSI21 Mr Nizar Chaabani Bonnes pratiques pour l’administration des sites web 86 SECURISATION DU BD Mettre à jour le SGBD avec les derniers correctifs stables Utiliser des algorithmes de hachage/cryptage pour stocker les données critiques Sécuriser le serveur de base de données derrière un firewall et utiliser un IDS pour détecter toute tentative d’intrusion Le serveur de base de données ne devrait pas avoir une adresse IP accessible au public L'accès à la base de données ne devrait être autorisé qu'à partir du serveur web sur un port bien particulier ARCH WEB & RX RSI21 Mr Nizar Chaabani Bonnes pratiques pour l’administration des sites web 87 Protéger contre les attaques de brute force Utiliser l'authentification forte, si possible (one time password, certificat numérique, etc.) Verrouiller un compte après un nombre déterminé de tentatives de connexion a échoué Identifier l'emplacement dans le réseau: Serveur web est situé dans une DMZ Évaluer la configuration du firewall: Serveur web est protégé par un pare-feu de couche d'application Firewall contrôle tout le trafic entre l'Internet et le serveur web Pare-feu bloque tout le trafic entrant vers le serveur web, sauf les ports TCP 80 (HTTP) et / ou 443 (HTTPS) ARCH WEB & RX RSI21 Mr Nizar Chaabani Bonnes pratiques pour l’administration des sites web 88 Évaluer les commutateurs réseau Les commutateurs sont utilisés pour protéger contre les écoutes réseau Évaluer les répartiteurs de charge (Load balancers) Les répartiteurs de charge sont utilisés pour augmenter la disponibilité du serveur web Les équilibreurs de charge sont complétés par les caches web Evaluer le reverse proxy Le reverse proxy est utilisé comme une passerelle de sécurité pour accroître la disponibilité du serveur web ARCH WEB & RX RSI21 Mr Nizar Chaabani Architecture Logicielle J2EE 89 ARCH WEB & RX RSI21 Mr Nizar Chaabani Qu’est ce que le Java EE (ou J2EE) 90 La Plateforme JEE désigne les technologies Java utilisées pour le développement d'applications «d’entreprise » distribuées (Répartie, multicouches, n-tiers) JEE est une plate-forme fortement orientée serveur. ARCH WEB & RX RSI21 Mr Nizar Chaabani Répartition des fonctions 91 sur la couche présentation, une application cliente est chargée de l’affichage et de la saisie des données Client web léger, Application java client ou applets (RMI), 2. sur la couche application, un serveur d’application maintient des composants métiers utilisés pour modéliser sous forme d’objet les processus de l’application Serveurs de: présentation, outils métiers, servlets,JSP , EJB 3. sur la couche données, les serveurs du système d’information d’entreprise stockent les composants métiers bases de données relationnelles ou objets, intégrés (ERP), annuaires d’entreprise LDAP,… 1. ARCH WEB & RX RSI21 Mr Nizar Chaabani Serveurs d'applications JEE 92 Architecture Web ARCH WEB & RX RSI21 Mr Nizar Chaabani Architecture: schéma de principe 93 ARCH WEB & RX RSI21 Mr Nizar Chaabani Principes de JEE 94 L’architecture JEE est une architecture d’application distribuée à base de composants. Ces composants sont mis en œuvre par l’intermédiaire des conteneurs Tiers Tiers Tiers Interface Services Web Navigateur Conteneur Applet Serveur Web Internet Composant Client Applet/ Html/wml ARCH WEB & RX RSI21 Conteneur Web Composant Web Servlet/JSP Mr Nizar Chaabani Tiers Métier Données Serveur d’application Conteneur EJB Composant Métier Bean Serveur de bases de données Composants J2EE 95 Un composant est une unité logicielle de niveau applicatif. JEE supporte les types de composants suivants : applets, application clientes, JavaBeans composants Enterprise JavaBeans (EJB), composants Web, composants adaptateurs de ressource etc ARCH WEB & RX RSI21 Mr Nizar Chaabani Android 96 ARCH WEB & RX RSI21 Mr Nizar Chaabani 97 Première plateforme ouverte pour appareils mobiles.Les applications natives et tierces utilisent les mêmes API. Un système d’exploitation open source libre pour appareils mobiles; Un environnement de développement ouvert construit sur un noyau Linux open source; ARCH WEB & RX RSI21 Mr Nizar Chaabani Concurrents 98 iOS(iphone OS): Un système mobile développé par Apple; Windows mobile: C’est le nom générique donné à différentes versions de Microsoft Windows ARCH WEB & RX RSI21 Mr Nizar Chaabani Pourquoi développer une application mobile? 99 Pour les professionnels ✔ ✔ ✔ ✔ L’application augmente l’accessibilité au site L’application permet de générer du trafic Le marché est en pleine croissance Une application contribue à l’image de marque ARCH WEB & RX RSI21 Mr Nizar Chaabani Versions disponibles 100 ARCH WEB & RX RSI21 Mr Nizar Chaabani Plateforme de téléchargement 101 Google Play : anciennement dénommée Android Market Boutique en ligne Client mail (Gmail) Gestion des SMS PIM (Google Calendar, gestion des contacts, etc.) Google Maps Navigateur Web basé sur WebKit Messagerie instantanée (Google Chat, MSN, etc.) Android Market Place etc. ARCH WEB & RX RSI21 Mr Nizar Chaabani Architecture générale 102 ARCH WEB & RX RSI21 Mr Nizar Chaabani Architecture - Kernel Linux 103 Basé sur Linux (version du noyau : 2.6) mais ce n'est pas Linux ! (pas de support de la glibc, X non présent) Le kernel Linux offre : Une couche d'abstraction matérielle Gestion de la mémoire Gestion des processus Gestion de la couche réseau Il est possible d'accéder à la console (le shell) depuis la commande adb ARCH WEB & RX RSI21 Mr Nizar Chaabani Architecture - Application Framework Core Plateform Services 104 Activity Manager Gère le cycle de vie des applications Maintient une « pile de navigation » permettant de switcher d'une application à une autre et de restaurer son état précédent Package Manager Utilisé par l'Activity Manager pour charger les informations des fichiers .apk (Android package file) Window Manager Gestionnaire de fenêtres des applications Resource Manager Gère tout ce qui ne relève pas du code (ressources statiques, images, audio, etc.) Content Provider Gère le partage des données entre applications View System Fournit l'ensemble des composants graphiques ARCH WEB & RX RSI21 Mr Nizar Chaabani Architecture - Application Framework Hardware Services 105 Permettent d'accéder aux APIs matérielles de bas niveau Telephony Service Permet l'accès aux interfaces "téléphonique" (GSM, 3G, etc.) Location Service Permet d'accéder au GPS Bluetooth Service Permet d'accéder à l'interface bluetooth Wifi Service Permet d'accéder à l'interface Wifi USB Service Permet d'accéder aux interfaces USB du terminal Sensor Service Permet d'accéder aux détecteurs (détecteurs de luminosité, etc.) ARCH WEB & RX RSI21 Mr Nizar Chaabani Le moteur d'exécution d'Android 106 Un moteur d'exécution (« runtime system » en anglais) est un programme qui permet l’exécution d'autres programmes. pour utiliser des applications développées en Java sur votre ordinateur vous avez besoin du JRE (« Java Runtime Environment »). Pour Android Elle contient certaines bibliothèques de base du Java accompagnées de bibliothèques spécifiques à Android et la machine virtuelle « Dalvik ». ARCH WEB & RX RSI21 Mr Nizar Chaabani la compilation et à l'exécution d'un programme Java standard. 107 ARCH WEB & RX RSI21 Mr Nizar Chaabani la compilation et à l’exécution d'un programme Android standard 108 ARCH WEB & RX RSI21 Mr Nizar Chaabani Arborescence d’un projet Android 109 Arborescence d’un projet Dossiers crées automatiquement lors de la création d’un projet : bin : binaires generés libs : bibliothèques res : fichiers de ressources (icones, layout, . . . ) src : fichiers sources (code Java) ARCH WEB & RX RSI21 Mr Nizar Chaabani Installation d’une application 110 Liste des périphériques avec ADB ADB (Android Debug Bridge) outls d'une communication entre le smartphone et pc. adb devices Installation Une application est installée sur un AVD ou sur un matériel a l’aide de la commande : adb install NomApk.apk ARCH WEB & RX RSI21 Mr Nizar Chaabani Boîte à outils 111 ARCH WEB & RX RSI21 Mr Nizar Chaabani SDK Android 112 Le kit de développement Android(SDK) fournit l’environnement de travail pour développer, tester et déboguer des applications Android. Dans le SDK on trouve: 1. Les API Android qui sont le coeur du SDK. Composés de bibliothéques d’API Android, ils donnent au développeur accès à la pile Android. 2. Des outils de développement qui permettent de compiler et déboguer vos applications. 3. Le virtual Device Manager et l’Emulateur qui fournit un meilleur environnement de test ARCH WEB & RX RSI21 Mr Nizar Chaabani Virtual Device Manager 113 Le SDK Android et le Virtual Device Manager sont utilisés pour créer et gérer les AVD(Android Virtual Devices) et les packages du SDK. ARCH WEB & RX RSI21 Mr Nizar Chaabani Emulateur 114 L’emulateur d’Android est un outil de test et de débogage d’application Android. Il fournit une connexion réseau complète, une simulation d’envoi et de réception d’appels et de SMS. ARCH WEB & RX RSI21 Mr Nizar Chaabani Composants d’une application Android 115 Les applications Android sont constitués de composants à couplage. Les composants sont liés par un manifeste d’application qui décrit chacun d’eux et comment ils interagissent. ARCH WEB & RX RSI21 Mr Nizar Chaabani Activity : le cycle de vie 116 ARCH WEB & RX RSI21 Mr Nizar Chaabani