SlideShare a Scribd company logo
1 of 9
Mai 2014
ECOLE NATIONALE SUPERIEURE D’INFORMATIQUE
Mini-projet: D'lala Online
TP N°3 IPLS
Développement d’une application de vente en ligne sécurisée avec ESAPI
Trinôme :
KENOUCHE Takfarinas
HALLAK Sidali
Guernane Hamza
Encadré par : Y.Challal
Sommaire
I. Description de l’application :.................................................................................................. 3
II. Description de l’outil de développement :............................................................................... 3
PLAY2 :................................................................................................................................... 3
III. Architecture de l’application :............................................................................................. 4
IV. La Sécurité du Framework PLAY2: ....................................................................................... 4
Est-ce que on besoin de ESAPI si on utilise PLAY2?................................................................... 4
1) ESAPI d’OWASP :............................................................................................................ 5
V. Intégration d’ESAPI dans le Framework PLAY2 :....................................................................... 6
VI. Prévention des Failles :....................................................................................................... 7
1) Le Cross Site Scripting :..................................................................................................... 7
2) Violation de Gestion d'Authentification et de Session :......................................................... 7
3) Références directes non sécurisées à un objet :..................................................................... 7
4) Exposition de données sensibles :........................................................................................ 7
5) Manque de contrôle d’accès au niveau fonctionnel :............................................................. 7
6) Falsification de requête intersites :....................................................................................... 7
VII. Intégration d’ESAPI ............................................................................................................ 8
1) Dans la classe commandes.java :......................................................................................... 8
2) Dans la classe Products.java :.............................................................................................. 9
VIII. Conclusion :....................................................................................................................... 9
I. Description de l’application :
L'application D'lala Online permet à un utilisateur authentifié d'effectuer une
recherche de produits dans une base de données. Cette application garantit la sécurité
de toutes les opérations que l’utilisateur peut effectuer.
II. Description de l’outil de développement :
L’application web D’lala Online à été développé avec le Framework PLAY2.
PLAY2 : un Framework open source de développement web dans la sphère java, visant à
offrir une productivité plus élevée aux développeurs de par sa simplicité et sa facilité d’accès.
Play est un Framework MVC basé sur la JVM (il n’est pas un Framework JEE), il
n’implémente pas la norme Servlet, il se base pas sur un serveur HTTP simple appelé Apache
Mina. Ce Framework utilise des langages connus HTML, Scala et JAVA.
Des grandes sites ont été développé avec PLAY2 citons :
 LinkedIn : est un réseau social professionnel en ligne qui revendique
plus de 300 millions de membres issus de 170 secteurs d'activités
dans plus de 200 pays et territoires.
 Klout : est un site web couplé avec une application pour Smartphones,
qui prend en compte l'activité sur les médias sociaux pour classer ses
utilisateurs en fonction de leur influence sociale en ligne.
 The Guardian : est un quotidien d'information
britannique
 Gilt Groupe : est une entreprise de commerce électronique
américaine, elle fait des ventes flash en ligne, de
vêtements et d'accessoires de couturiers…etc.
III. Architecture de l’application :
L’application D’lala Online est organisée de tel sorte que :
Le client peut passer une commande constituée de plusieurs produits, ces derniers
appartiennent à des catégories différentes (un produit appartient à une seule catégorie). Toutes
les commandes d’un client sont sauvegardées dans une ligne de commande.
Le diagramme ci-dessous montre la structure de D’lala Online :
IV. La Sécurité du Framework PLAY2:
Le Web est devenu un lieu où on peut échanger des informations mais il est
également devenu un marché à part entière pour la vente et l'achat de biens matériels.
Les acteurs de ce nouveau marché ont besoin de sécurité sous tous ses aspects, la
protection de la confidentialité, l'intégrité et de la disponibilité de l'information.
Est-ce que on besoin de ESAPI si on utilise PLAY2?
Play est assez robuste car il inclut l'échappement automatique de potentiels vecteur de
cross site Scripting mais si vous n'utilisez pas les modèles de Framework PLAY2pour
afficher les données (mais une API AJAX), vous aurez besoin de le faire séparément. Play
offre également un cadre tout à fait bon de validation, mais vous avez encore besoin de mettre
en œuvre des fonctions de validation pour certains types de contenu et c'est là que l'OWASP
ESAPI est très utile.
1) ESAPI d’OWASP :
C’est une bibliothèque open source destinée pour les applications web pour le contrôle de
sécurité conçu pour permettre aux programmeurs de rénover des applications existantes de
façon très simple. ESAPI pour Java est également une base solide pour un nouveau
développement, surtout qu’elle permet la validation des entrées, l’encodage des sorties et le
contrôle d’accès pour les objets.
Les grands organismes qui l’utilisent :
 L'Apache Software Foundation : est une organisation
à but non lucratif qui développe des logiciels open
source sous la licence Apache, dont le renommé
serveur web Apache HTTP Server.
 Foundstone de McAfee : le géant de la sécurité de l’information,
fournit des solutions stratégiques aux problèmes de sécurité.
 American Express : est une entreprise financière américaine,
spécialisée dans les moyens de paiement, connue pour ses cartes de
paiement ainsi que ses chèques de voyage et acteur de premier plan
dans l'organisation de voyages d'affaires.
 US Navy : est la marine de guerre des États-Unis et représente l'une
des cinq composantes des forces armées des États-Unis. Elle est
depuis la Seconde Guerre mondiale la première force aéronavale au
monde.
V. Intégration d’ESAPI dans le Framework PLAY2 :
On va ajouter les fichiers d’ESAPI comme la montre la capture suivante :
ESAPI à besoin des fichiers suivants :
 esapi-2.1.0.jar : la librairie ESAPI qui va être placé dans le répertoire lib/.
 Antisamy-esapi.xml : qui contient les règles de W3C qui permet de vérifier le contenu
HTML introduit par l’utilisateur dont le but d’éviter des attaques tel que XSS.
 Validation.properties : le validateur de d’ESAPI qui permet la vérification des entrées
(exemple : validation par liste blanche).
 ESAPI.properties : c’est le fichier de configuration d’ESAPI (au minimum il faut
modifier Encryptor.MasterKey, Encryptor.MasterSalt).
VI. Prévention des Failles :
1) Le Cross Site Scripting :
Consiste à injecter du code (html, javascript ...) directement dans les pages web via un
formulaire à remplir ou autres, cela amène à exécuter un script dans le navigateur de la
victime afin de détourner des sessions utilisateur, défigurer des sites web, ou rediriger
l'utilisateur vers des sites malveillants.
Cette vulnérabilité va être évitée on utilisant la bibliothèque d’ESAPI d’OWASP.
2) Violation de Gestion d'Authentification et de Session :
Les sessions ne sont pas généralement gérées correctement, ceci permet aux attaquants de
compromettre les mots de passe, jetons de session, ou d'exploiter d'autres failles
d'implémentation pour s'approprier les identités d'autres utilisateurs.
3) Références directes non sécurisées à un objet :
Cela arrive lorsqu’expose une référence à un objet d'exécution interne, un enregistrement
de base de données ou une clé de base de données. Les attaquants peuvent manipuler ces
références pour accéder à des données non autorisées.
4) Exposition de données sensibles :
Les données faiblement protégées sont exposées à divers attaques tel que le vol d'identité
ou fraude. Ces données méritent une protection supplémentaire tel un chiffrement
statique ou en transit, ainsi que des précautions particulières lors de l'échange avec le
navigateur.
5) Manque de contrôle d’accès au niveau fonctionnel :
Il est indispensable d’effectuer des vérifications de contrôle d'accès sur le serveur lors de
l'accès à chaque fonction, dans le cas contraire il est possible de forger des demandes afin
d'accéder à une fonctionnalité non autorisée.
6) Falsification de requête intersites :
Cette attaque force le navigateur d'une victime authentifiée à envoyer une requête HTTP
forgée, comprenant le cookie de session de la victime ainsi que toute autre information
automatiquement inclue, à une application web vulnérable.
Le Framework PLAY2 à été configuré pour résoudre les attaques (2, 3, 4,5 et 6)
citées au-dessus.
VII. Intégration d’ESAPI
1) Dans la classe commandes.java :
Lors de la récupération des données d’une commande, il est indispensable de vérifier le
flux de données venant du service web au tant que Json dont le but d’éviter les attaques
de type XSS.
La quantité et le total de la commande est récupéré comme étant un texte, on utilise la
fonction encodeForJavaScript pour échapper le contenu JavaScript dans le cas d’une attaque
XSS.
2) Dans la classe Products.java :
Utiliser la fonction encodeForHtml lors de la récupération du nom, prix, description et
catégorie du produit, pour échapper le contenu Html dans le cas d’une attaque XSS.
VIII. Conclusion :
La sécurité des applications Web ne peut plus être ignorée. De plus en plus
souvent, les vols de données et les incidents liés aux applications Web font la une
de l’actualité de la sécurité. Alors la solution c’est de combiner un Framework de
développement d’application tel que Play avec un Framework de sécurité tel
qu’ESAPI.

More Related Content

What's hot

SQL injection prevention techniques
SQL injection prevention techniquesSQL injection prevention techniques
SQL injection prevention techniquesSongchaiDuangpan
 
Web Application Penetration Testing
Web Application Penetration Testing Web Application Penetration Testing
Web Application Penetration Testing Priyanka Aash
 
SQL INJECTION
SQL INJECTIONSQL INJECTION
SQL INJECTIONMentorcs
 
HTTP Security Headers Every Java Developer Must Know
HTTP Security Headers Every Java Developer Must KnowHTTP Security Headers Every Java Developer Must Know
HTTP Security Headers Every Java Developer Must KnowAyoma Wijethunga
 
Sql injection - security testing
Sql injection - security testingSql injection - security testing
Sql injection - security testingNapendra Singh
 
OceanLotus Ships New Backdoor Using Old Tricks
OceanLotus Ships New Backdoor Using Old TricksOceanLotus Ships New Backdoor Using Old Tricks
OceanLotus Ships New Backdoor Using Old TricksESET Middle East
 
Penetration testing web application web application (in) security
Penetration testing web application web application (in) securityPenetration testing web application web application (in) security
Penetration testing web application web application (in) securityNahidul Kibria
 
Sql injection attack
Sql injection attackSql injection attack
Sql injection attackRaghav Bisht
 
Cross Site Request Forgery (CSRF) Scripting Explained
Cross Site Request Forgery (CSRF) Scripting ExplainedCross Site Request Forgery (CSRF) Scripting Explained
Cross Site Request Forgery (CSRF) Scripting ExplainedValency Networks
 
Ethical Hacking n VAPT presentation by Suvrat jain
Ethical Hacking n VAPT presentation by Suvrat jainEthical Hacking n VAPT presentation by Suvrat jain
Ethical Hacking n VAPT presentation by Suvrat jainSuvrat Jain
 
Advanced SQL Injection
Advanced SQL InjectionAdvanced SQL Injection
Advanced SQL InjectionJoe McCray
 
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)Mark Thalib
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)TzahiArabov
 
sqlmap - security development in Python
sqlmap - security development in Pythonsqlmap - security development in Python
sqlmap - security development in PythonMiroslav Stampar
 
Exploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaExploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaCODE WHITE GmbH
 

What's hot (20)

SQL injection prevention techniques
SQL injection prevention techniquesSQL injection prevention techniques
SQL injection prevention techniques
 
Presentacion avira
Presentacion aviraPresentacion avira
Presentacion avira
 
Broken access controls
Broken access controlsBroken access controls
Broken access controls
 
Web Application Penetration Testing
Web Application Penetration Testing Web Application Penetration Testing
Web Application Penetration Testing
 
SQL INJECTION
SQL INJECTIONSQL INJECTION
SQL INJECTION
 
OWASP TOP 10 VULNERABILITIS
OWASP TOP 10 VULNERABILITISOWASP TOP 10 VULNERABILITIS
OWASP TOP 10 VULNERABILITIS
 
HTTP Security Headers Every Java Developer Must Know
HTTP Security Headers Every Java Developer Must KnowHTTP Security Headers Every Java Developer Must Know
HTTP Security Headers Every Java Developer Must Know
 
Sql injection - security testing
Sql injection - security testingSql injection - security testing
Sql injection - security testing
 
OceanLotus Ships New Backdoor Using Old Tricks
OceanLotus Ships New Backdoor Using Old TricksOceanLotus Ships New Backdoor Using Old Tricks
OceanLotus Ships New Backdoor Using Old Tricks
 
Penetration testing web application web application (in) security
Penetration testing web application web application (in) securityPenetration testing web application web application (in) security
Penetration testing web application web application (in) security
 
Sql injection attack
Sql injection attackSql injection attack
Sql injection attack
 
Cross Site Request Forgery (CSRF) Scripting Explained
Cross Site Request Forgery (CSRF) Scripting ExplainedCross Site Request Forgery (CSRF) Scripting Explained
Cross Site Request Forgery (CSRF) Scripting Explained
 
Ethical Hacking n VAPT presentation by Suvrat jain
Ethical Hacking n VAPT presentation by Suvrat jainEthical Hacking n VAPT presentation by Suvrat jain
Ethical Hacking n VAPT presentation by Suvrat jain
 
Advanced SQL Injection
Advanced SQL InjectionAdvanced SQL Injection
Advanced SQL Injection
 
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
Bagaimana Belajar Menjadi Seorang Penetration Tester (PenTest)
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)
 
SQL Injection
SQL Injection SQL Injection
SQL Injection
 
Sécurité des applications web
Sécurité des applications webSécurité des applications web
Sécurité des applications web
 
sqlmap - security development in Python
sqlmap - security development in Pythonsqlmap - security development in Python
sqlmap - security development in Python
 
Exploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaExploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in Java
 

Viewers also liked

La vente en ligne 101
La vente en ligne 101La vente en ligne 101
La vente en ligne 101Nmédia
 
JavaScript Coding Guidelines
JavaScript Coding GuidelinesJavaScript Coding Guidelines
JavaScript Coding GuidelinesOleksii Prohonnyi
 
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
 
formulaire d'inscription sur les listes électorales
formulaire d'inscription sur les listes électoralesformulaire d'inscription sur les listes électorales
formulaire d'inscription sur les listes électoralesGwladys
 
Corrig Projet P L S Q L
Corrig Projet  P L S Q LCorrig Projet  P L S Q L
Corrig Projet P L S Q Lbadirh
 
Recommendation Letter- PDRM
Recommendation Letter- PDRMRecommendation Letter- PDRM
Recommendation Letter- PDRMSally Abas
 
Applications secure by default
Applications secure by defaultApplications secure by default
Applications secure by defaultSecuRing
 
Formation MySQL Workbench
Formation MySQL WorkbenchFormation MySQL Workbench
Formation MySQL WorkbenchIsenDev
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-frameworkAbdhesh Kumar
 
Serveur web sur lindux debian
Serveur web sur lindux debianServeur web sur lindux debian
Serveur web sur lindux debiancharlielefebvre14
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptHoracio Gonzalez
 
Alimentation et synchronisation d'annuaires LDAP
Alimentation et synchronisation d'annuaires LDAPAlimentation et synchronisation d'annuaires LDAP
Alimentation et synchronisation d'annuaires LDAPLINAGORA
 
Exercices shell
Exercices shellExercices shell
Exercices shellulratique
 
Initiation a la ligne de commande
Initiation a la ligne de commandeInitiation a la ligne de commande
Initiation a la ligne de commandeLakhdar Meftah
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Enib   cours c.a.i. web - séance #5 : scala play! frameworkEnib   cours c.a.i. web - séance #5 : scala play! framework
Enib cours c.a.i. web - séance #5 : scala play! frameworkHoracio Gonzalez
 
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAPPlone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAPParis, France
 

Viewers also liked (20)

La vente en ligne 101
La vente en ligne 101La vente en ligne 101
La vente en ligne 101
 
JavaScript Coding Guidelines
JavaScript Coding GuidelinesJavaScript Coding Guidelines
JavaScript Coding Guidelines
 
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012
 
formulaire d'inscription sur les listes électorales
formulaire d'inscription sur les listes électoralesformulaire d'inscription sur les listes électorales
formulaire d'inscription sur les listes électorales
 
Corrig Projet P L S Q L
Corrig Projet  P L S Q LCorrig Projet  P L S Q L
Corrig Projet P L S Q L
 
Recommendation Letter- PDRM
Recommendation Letter- PDRMRecommendation Letter- PDRM
Recommendation Letter- PDRM
 
Applications secure by default
Applications secure by defaultApplications secure by default
Applications secure by default
 
Formation MySQL Workbench
Formation MySQL WorkbenchFormation MySQL Workbench
Formation MySQL Workbench
 
Secure java script-for-developers
Secure java script-for-developersSecure java script-for-developers
Secure java script-for-developers
 
Conception d'un Extranet
Conception d'un ExtranetConception d'un Extranet
Conception d'un Extranet
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-framework
 
Serveur web sur lindux debian
Serveur web sur lindux debianServeur web sur lindux debian
Serveur web sur lindux debian
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
 
Alimentation et synchronisation d'annuaires LDAP
Alimentation et synchronisation d'annuaires LDAPAlimentation et synchronisation d'annuaires LDAP
Alimentation et synchronisation d'annuaires LDAP
 
Exercices shell
Exercices shellExercices shell
Exercices shell
 
Tp switch
Tp switchTp switch
Tp switch
 
Initiation a la ligne de commande
Initiation a la ligne de commandeInitiation a la ligne de commande
Initiation a la ligne de commande
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Enib   cours c.a.i. web - séance #5 : scala play! frameworkEnib   cours c.a.i. web - séance #5 : scala play! framework
Enib cours c.a.i. web - séance #5 : scala play! framework
 
My SQL
My SQLMy SQL
My SQL
 
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAPPlone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP
 

Similar to La sécurité des applications avec ESAPI

20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatifLeClubQualiteLogicielle
 
Tuto atelier securisation_site_web
Tuto atelier securisation_site_webTuto atelier securisation_site_web
Tuto atelier securisation_site_websahar dridi
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Asma Messaoudi
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
 
Introduction à La Sécurité Informatique 2/2
Introduction à La Sécurité Informatique 2/2Introduction à La Sécurité Informatique 2/2
Introduction à La Sécurité Informatique 2/2Sylvain Maret
 
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseAntonio Fontes
 
Rapport Threat Intelligence Check Point du 29 août 2016
Rapport Threat Intelligence Check Point du 29 août 2016Rapport Threat Intelligence Check Point du 29 août 2016
Rapport Threat Intelligence Check Point du 29 août 2016Blandine Delaporte
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouseSébastien GIORIA
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1Tarek MOHAMED
 
Rapport Threat Intelligence Check Point du 23 mai 2016
Rapport Threat Intelligence Check Point du 23 mai 2016Rapport Threat Intelligence Check Point du 23 mai 2016
Rapport Threat Intelligence Check Point du 23 mai 2016Blandine Delaporte
 
Rapport Threat Intelligence Check Point du 20 juin 2016
Rapport Threat Intelligence Check Point du 20 juin 2016Rapport Threat Intelligence Check Point du 20 juin 2016
Rapport Threat Intelligence Check Point du 20 juin 2016Blandine Delaporte
 
TP1 analyse de mémoire.pdf
TP1 analyse de mémoire.pdfTP1 analyse de mémoire.pdf
TP1 analyse de mémoire.pdffatima117475
 
Api win32 ancestrales pour chevaux de troie hyper furtifs
Api win32 ancestrales pour chevaux de troie hyper furtifsApi win32 ancestrales pour chevaux de troie hyper furtifs
Api win32 ancestrales pour chevaux de troie hyper furtifsUltraUploader
 
Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Microsoft Technet France
 
Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Microsoft Décideurs IT
 

Similar to La sécurité des applications avec ESAPI (20)

20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif
 
Tuto atelier securisation_site_web
Tuto atelier securisation_site_webTuto atelier securisation_site_web
Tuto atelier securisation_site_web
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
 
OWASP TOP 10 Proactive
OWASP TOP 10 ProactiveOWASP TOP 10 Proactive
OWASP TOP 10 Proactive
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
Introduction à La Sécurité Informatique 2/2
Introduction à La Sécurité Informatique 2/2Introduction à La Sécurité Informatique 2/2
Introduction à La Sécurité Informatique 2/2
 
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
 
Rapport Threat Intelligence Check Point du 29 août 2016
Rapport Threat Intelligence Check Point du 29 août 2016Rapport Threat Intelligence Check Point du 29 août 2016
Rapport Threat Intelligence Check Point du 29 août 2016
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1
 
Rapport Threat Intelligence Check Point du 23 mai 2016
Rapport Threat Intelligence Check Point du 23 mai 2016Rapport Threat Intelligence Check Point du 23 mai 2016
Rapport Threat Intelligence Check Point du 23 mai 2016
 
Rapport Threat Intelligence Check Point du 20 juin 2016
Rapport Threat Intelligence Check Point du 20 juin 2016Rapport Threat Intelligence Check Point du 20 juin 2016
Rapport Threat Intelligence Check Point du 20 juin 2016
 
TP1 analyse de mémoire.pdf
TP1 analyse de mémoire.pdfTP1 analyse de mémoire.pdf
TP1 analyse de mémoire.pdf
 
Api win32 ancestrales pour chevaux de troie hyper furtifs
Api win32 ancestrales pour chevaux de troie hyper furtifsApi win32 ancestrales pour chevaux de troie hyper furtifs
Api win32 ancestrales pour chevaux de troie hyper furtifs
 
Securite web is_ima
Securite web is_imaSecurite web is_ima
Securite web is_ima
 
20100114 Waf V0.7
20100114 Waf V0.720100114 Waf V0.7
20100114 Waf V0.7
 
Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !
 
Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !Sécurité Active Directory : détecter l’indétectable !
Sécurité Active Directory : détecter l’indétectable !
 

Recently uploaded

présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxdocteurgyneco1
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesangevaleryn
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptbentaha1011
 

Recently uploaded (9)

présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
 

La sécurité des applications avec ESAPI

  • 1. Mai 2014 ECOLE NATIONALE SUPERIEURE D’INFORMATIQUE Mini-projet: D'lala Online TP N°3 IPLS Développement d’une application de vente en ligne sécurisée avec ESAPI Trinôme : KENOUCHE Takfarinas HALLAK Sidali Guernane Hamza Encadré par : Y.Challal
  • 2. Sommaire I. Description de l’application :.................................................................................................. 3 II. Description de l’outil de développement :............................................................................... 3 PLAY2 :................................................................................................................................... 3 III. Architecture de l’application :............................................................................................. 4 IV. La Sécurité du Framework PLAY2: ....................................................................................... 4 Est-ce que on besoin de ESAPI si on utilise PLAY2?................................................................... 4 1) ESAPI d’OWASP :............................................................................................................ 5 V. Intégration d’ESAPI dans le Framework PLAY2 :....................................................................... 6 VI. Prévention des Failles :....................................................................................................... 7 1) Le Cross Site Scripting :..................................................................................................... 7 2) Violation de Gestion d'Authentification et de Session :......................................................... 7 3) Références directes non sécurisées à un objet :..................................................................... 7 4) Exposition de données sensibles :........................................................................................ 7 5) Manque de contrôle d’accès au niveau fonctionnel :............................................................. 7 6) Falsification de requête intersites :....................................................................................... 7 VII. Intégration d’ESAPI ............................................................................................................ 8 1) Dans la classe commandes.java :......................................................................................... 8 2) Dans la classe Products.java :.............................................................................................. 9 VIII. Conclusion :....................................................................................................................... 9
  • 3. I. Description de l’application : L'application D'lala Online permet à un utilisateur authentifié d'effectuer une recherche de produits dans une base de données. Cette application garantit la sécurité de toutes les opérations que l’utilisateur peut effectuer. II. Description de l’outil de développement : L’application web D’lala Online à été développé avec le Framework PLAY2. PLAY2 : un Framework open source de développement web dans la sphère java, visant à offrir une productivité plus élevée aux développeurs de par sa simplicité et sa facilité d’accès. Play est un Framework MVC basé sur la JVM (il n’est pas un Framework JEE), il n’implémente pas la norme Servlet, il se base pas sur un serveur HTTP simple appelé Apache Mina. Ce Framework utilise des langages connus HTML, Scala et JAVA. Des grandes sites ont été développé avec PLAY2 citons :  LinkedIn : est un réseau social professionnel en ligne qui revendique plus de 300 millions de membres issus de 170 secteurs d'activités dans plus de 200 pays et territoires.  Klout : est un site web couplé avec une application pour Smartphones, qui prend en compte l'activité sur les médias sociaux pour classer ses utilisateurs en fonction de leur influence sociale en ligne.  The Guardian : est un quotidien d'information britannique  Gilt Groupe : est une entreprise de commerce électronique américaine, elle fait des ventes flash en ligne, de vêtements et d'accessoires de couturiers…etc.
  • 4. III. Architecture de l’application : L’application D’lala Online est organisée de tel sorte que : Le client peut passer une commande constituée de plusieurs produits, ces derniers appartiennent à des catégories différentes (un produit appartient à une seule catégorie). Toutes les commandes d’un client sont sauvegardées dans une ligne de commande. Le diagramme ci-dessous montre la structure de D’lala Online : IV. La Sécurité du Framework PLAY2: Le Web est devenu un lieu où on peut échanger des informations mais il est également devenu un marché à part entière pour la vente et l'achat de biens matériels. Les acteurs de ce nouveau marché ont besoin de sécurité sous tous ses aspects, la protection de la confidentialité, l'intégrité et de la disponibilité de l'information. Est-ce que on besoin de ESAPI si on utilise PLAY2? Play est assez robuste car il inclut l'échappement automatique de potentiels vecteur de cross site Scripting mais si vous n'utilisez pas les modèles de Framework PLAY2pour afficher les données (mais une API AJAX), vous aurez besoin de le faire séparément. Play offre également un cadre tout à fait bon de validation, mais vous avez encore besoin de mettre en œuvre des fonctions de validation pour certains types de contenu et c'est là que l'OWASP ESAPI est très utile.
  • 5. 1) ESAPI d’OWASP : C’est une bibliothèque open source destinée pour les applications web pour le contrôle de sécurité conçu pour permettre aux programmeurs de rénover des applications existantes de façon très simple. ESAPI pour Java est également une base solide pour un nouveau développement, surtout qu’elle permet la validation des entrées, l’encodage des sorties et le contrôle d’accès pour les objets. Les grands organismes qui l’utilisent :  L'Apache Software Foundation : est une organisation à but non lucratif qui développe des logiciels open source sous la licence Apache, dont le renommé serveur web Apache HTTP Server.  Foundstone de McAfee : le géant de la sécurité de l’information, fournit des solutions stratégiques aux problèmes de sécurité.  American Express : est une entreprise financière américaine, spécialisée dans les moyens de paiement, connue pour ses cartes de paiement ainsi que ses chèques de voyage et acteur de premier plan dans l'organisation de voyages d'affaires.  US Navy : est la marine de guerre des États-Unis et représente l'une des cinq composantes des forces armées des États-Unis. Elle est depuis la Seconde Guerre mondiale la première force aéronavale au monde.
  • 6. V. Intégration d’ESAPI dans le Framework PLAY2 : On va ajouter les fichiers d’ESAPI comme la montre la capture suivante : ESAPI à besoin des fichiers suivants :  esapi-2.1.0.jar : la librairie ESAPI qui va être placé dans le répertoire lib/.  Antisamy-esapi.xml : qui contient les règles de W3C qui permet de vérifier le contenu HTML introduit par l’utilisateur dont le but d’éviter des attaques tel que XSS.  Validation.properties : le validateur de d’ESAPI qui permet la vérification des entrées (exemple : validation par liste blanche).  ESAPI.properties : c’est le fichier de configuration d’ESAPI (au minimum il faut modifier Encryptor.MasterKey, Encryptor.MasterSalt).
  • 7. VI. Prévention des Failles : 1) Le Cross Site Scripting : Consiste à injecter du code (html, javascript ...) directement dans les pages web via un formulaire à remplir ou autres, cela amène à exécuter un script dans le navigateur de la victime afin de détourner des sessions utilisateur, défigurer des sites web, ou rediriger l'utilisateur vers des sites malveillants. Cette vulnérabilité va être évitée on utilisant la bibliothèque d’ESAPI d’OWASP. 2) Violation de Gestion d'Authentification et de Session : Les sessions ne sont pas généralement gérées correctement, ceci permet aux attaquants de compromettre les mots de passe, jetons de session, ou d'exploiter d'autres failles d'implémentation pour s'approprier les identités d'autres utilisateurs. 3) Références directes non sécurisées à un objet : Cela arrive lorsqu’expose une référence à un objet d'exécution interne, un enregistrement de base de données ou une clé de base de données. Les attaquants peuvent manipuler ces références pour accéder à des données non autorisées. 4) Exposition de données sensibles : Les données faiblement protégées sont exposées à divers attaques tel que le vol d'identité ou fraude. Ces données méritent une protection supplémentaire tel un chiffrement statique ou en transit, ainsi que des précautions particulières lors de l'échange avec le navigateur. 5) Manque de contrôle d’accès au niveau fonctionnel : Il est indispensable d’effectuer des vérifications de contrôle d'accès sur le serveur lors de l'accès à chaque fonction, dans le cas contraire il est possible de forger des demandes afin d'accéder à une fonctionnalité non autorisée. 6) Falsification de requête intersites : Cette attaque force le navigateur d'une victime authentifiée à envoyer une requête HTTP forgée, comprenant le cookie de session de la victime ainsi que toute autre information automatiquement inclue, à une application web vulnérable. Le Framework PLAY2 à été configuré pour résoudre les attaques (2, 3, 4,5 et 6) citées au-dessus.
  • 8. VII. Intégration d’ESAPI 1) Dans la classe commandes.java : Lors de la récupération des données d’une commande, il est indispensable de vérifier le flux de données venant du service web au tant que Json dont le but d’éviter les attaques de type XSS. La quantité et le total de la commande est récupéré comme étant un texte, on utilise la fonction encodeForJavaScript pour échapper le contenu JavaScript dans le cas d’une attaque XSS.
  • 9. 2) Dans la classe Products.java : Utiliser la fonction encodeForHtml lors de la récupération du nom, prix, description et catégorie du produit, pour échapper le contenu Html dans le cas d’une attaque XSS. VIII. Conclusion : La sécurité des applications Web ne peut plus être ignorée. De plus en plus souvent, les vols de données et les incidents liés aux applications Web font la une de l’actualité de la sécurité. Alors la solution c’est de combiner un Framework de développement d’application tel que Play avec un Framework de sécurité tel qu’ESAPI.