| 
 
 Mémoire présenté en vue d'obtenir Unité d'Enseignement ENG111 « Information et communication
pour l'ingénieur » Spécialité : Informatique par HARRY Guillaume  Les principales failles de sécurité des
applications Web actuelles, telles que recensées par
l'OWASP :principes, parades et bonnes pratiques
de développement.
 Soutenu le 17/01/2012 JURY PRESIDENTE : Nicole LEVY MEMBRES  : Selma BOUMERDASSI, Axel BUENDIA Table des matières 
1. INTRODUCTION 
1 
1.1 Contexte 
1 
1.2 Enjeux 
2 
2. APPLICATIONS WEB 
3 
2.1 Architecture 
3 
2.2 Composants du client Web 
5 
2.3 Composants serveur 
6 
3. FAILLES DE
SÉCURITÉ 
8 
3.1 Injection 
8 
3.2 Cross-Site Scripting (XSS) 
10 
3.3 Violation de gestion d'authentification et de
session 
13 
3.4 Référence directe non
sécurisée à un objet 
15 
3.5 Falsification de requête inter-sites (CSRF) 
16 
3.6 Mauvaise configuration de sécurité 
17 
3.7 Stockage de données cryptographiques non
sécurisé 
18 
3.8 Défaillance dans la restriction des
accès à une URL 
19 
3.9 Protection insuffisante de la couche transport 
20 
3.10 Redirection et renvois non validés 
21 
4. BONNES PRATIQUES 
23 
4.1 Règles de développement 
23 
4.2 Configuration des composants serveur 
23 
4.3 Audit 
24 
5. CONCLUSION 
25 
5.1 Constat 
25 
5.2 Perspectives 
25 
6. BIBLIOGRAPHIE 
26 
 1. TABLE DES FIGURES
Figure 1 - Transfert des données à
travers la pile de protocoles d'Internet 
3 
Figure 2 - Pile de protocoles d'Internet 
4 
Figure 3 - Mode de fonctionnement des applications Web 
5 
Figure 4 - Mode de fonctionnement des applications Web
2.0 
6 
Figure 5 - Script SQL de création de la table
« comptes » 
8 
Figure 6 - Requête SQL pour l'authentification
et affichage du numéro de carte 
8 
Figure 7 - Script PHP pour l'authentification et
l'affichage du numéro de carte 
9 
Figure 8 - Requête SQL incluant du code
frauduleux d'injection 
9 
Figure 9 - Caractères spéciaux
communément utilisés dans les attaques d'injection 
10 
Figure 10 - Script PHP pour remplacer les
caractères par le code HTML 
10 
Figure 11 - Principe d'une attaque XSS par
réflexion 
11 
Figure 12 - Exemple de lien malveillant exploitant une
faille XSS 
11 
Figure 13 - Script SQL de création de la table
« messages » 
12 
Figure 14 - Script PHP pour l'insertion dans la table
« messages » 
12 
Figure 15 - Script PHP pour la recherche dans la table
« messages » 
12 
Figure 16 - Caractères spéciaux à
remplacer par leur code 
13 
Figure 17 - Script PHP pour positionner l'attribut de
cookie HTTPOnly 
13 
Figure 18 - Script PHP pour l'affichage du
numéro de carte 
15 
Figure 19 - Principe d'une attaque CSRF stockée 
16 
Figure 20 - Code HTML pour réaliser une attaque
CSRF 
17 
Figure 21 - Script PHP vulnérable à
l'attaque par traversée de chemin 
19 
Figure 22 - Script PHP non vulnérable à
l'attaque par traversée de chemin 
20 
Figure 23 - Script PHP de redirection automatique 
21 
Figure 24 - Lien pour rediriger l'utilisateur vers une
page malveillante 
21 
Figure 25 - Exemple de redirection automatique
configurée au niveau du serveur http 
22 |