Académique Documents
Professionnel Documents
Culture Documents
Rapport
Première Année Transformation Digitale et
Intelligence Artificielle
Chrome DevTools
Owasp
Évolution de HTTP
Réalisé par :
- Allali Mohamed Amin
2
I. OWASP :
2. Top 10 de L’owasp ?
Le Top 10 de l'OWASP est un rapport régulièrement mis à jour qui identifie
les 10 principales préoccupations en matière de sécurité des applications
web. Rédigé par des experts mondiaux en sécurité, il sert de guide de
sensibilisation et est recommandé aux entreprises pour minimiser et
atténuer les risques de sécurité.
1.1. Injection :
Les attaques par injection surviennent lorsqu'une application web traite des
données non fiables envoyées par l'utilisateur, souvent via des formulaires
ou d'autres mécanismes de soumission de données. Par exemple, un
attaquant pourrait insérer du code SQL malveillant dans un champ de
formulaire destiné à un nom d'utilisateur. Si l'application ne sécurise pas
correctement ces données, le code SQL peut être exécuté, ce qui conduit à
ce qu'on appelle une injection SQL.
3
1.2. Authentification incorrecte :
Les vulnérabilités des systèmes d'authentification (login) peuvent donner
aux pirates l'accès à des comptes d'utilisateurs et même la possibilité de
compromettre un système entier en utilisant un compte administrateur. Par
exemple, un attaquant peut prendre une liste contenant des milliers de
combinaisons connues de noms d'utilisateur/mots de passe obtenues lors
d'une violation de données et utiliser un script pour essayer toutes ces
combinaisons sur un système de connexion afin de voir si certaines
fonctionnent.
4
Configuration incorrecte : Les paramètres de sécurité mal configurés
peuvent rendre involontairement accessibles des données sensibles.
Par exemple, des répertoires de fichiers peuvent être laissés en
accès libre sans contrôles adéquats.
Il s'agit d'une attaque contre une application web qui analyse les contenus
XML*. Ce contenu peut faire référence à une entité externe, en essayant
d'exploiter une vulnérabilité dans l'analyseur. Une "entité externe" dans ce
contexte fait référence à une unité de stockage, comme un disque dur. Un
analyseur XML peut être utilisé pour envoyer des données à une entité
externe non autorisée, ce qui peut transmettre des données sensibles
directement à un pirate.
5
d'atténuer ce problème en supprimant toute fonctionnalité inutilisée dans le
code et en veillant à ce que les messages d'erreur soient plus généraux.
6
1.9. Utilisation de composants aux vulnérabilités connues :
De nombreux développeurs web modernes utilisent des composants tels
que des bibliothèques et des cadres dans leurs applications web. Ces
composants sont des logiciels qui aident les développeurs à éviter le travail
redondant et à fournir les fonctionnalités nécessaires ; des exemples
courants sont les cadres de front-end comme React et les petites
bibliothèques qui avaient l'habitude d'ajouter des icônes de partage ou des
tests a/b. Certains pirates recherchent des vulnérabilités dans ces
composants qu'ils peuvent ensuite utiliser pour orchestrer des attaques.
Certains des composants les plus populaires sont utilisés sur des
centaines de milliers de sites Web ; un pirate trouvant une faille de sécurité
dans l'un de ces composants pourrait laisser des centaines de milliers de
sites vulnérables à une exploitation.
7
II. CHROME DEV TOOLS :
8
à éditer directement les fichiers sources.si vous souhaitez par exemple
effectuer un prototypage CSS, sélectionnez l'élément dans l'arborescence
du DOM et ajoutez des déclarations à cet élément dans le volet Styles.
Vous pouvez modifier les propriétés de police telles que la couleur, la taille
et la famille. Vous pouvez également modifier les images, les couleurs de
fond, les couleurs des boutons, etc.
9
2.3. Panneau Sources :
Le panneau Sources vous permet de visualiser et de modifier le code
JavaScript et CSS de votre page. Avec le panneau Sources, vous pouvez
définir des points d'arrêt, parcourir pas à pas le code et voir les valeurs des
variables. Sélectionnez un fichier dans le volet "Fichiers" pour commencer
avec le panneau Sources.
Vous pouvez également définir facilement des points d'arrêt dans votre
code avec le panneau Sources. Pour définir un point d'arrêt, cliquez sur le
numéro de ligne où vous souhaitez définir le point d'arrêt. Cela affichera
une boîte de dialogue où vous pouvez entrer les conditions du point d'arrêt.
Une fois que vous avez entré les conditions du point d'arrêt, cliquez sur
"OK" pour définir le point d'arrêt.
10
Chaque ligne du journal réseau représente une ressource. Par défaut, les
ressources sont répertoriées chronologiquement. La ressource supérieure
est généralement le document HTML principal. La ressource inférieure
correspond à celle demandée en dernier.
11
ressources prennent du temps et où se produisent les goulots
d'étranglement.
12
2.6. Panneau Memory :
Le panneau Memory (Mémoire) fournit des outils de diagnostic qui vous
permettent de visualiser la répartition de la mémoire des objets JavaScript,
de détecter et d'isoler les fuites de mémoire, d'obtenir le détail de
l'allocation de mémoire par fonction, etc.
13
L'onglet Service workers vous permet d'inspecter et de déboguer
les service workers en émulant des événements push, en mettant à
jour un service, etc.
14
L'onglet Cache amélioré vous permet d'exécuter des tests sur le
cache amélioré dans le navigateur.
L'onglet API Reporting surveille votre site et signale les appels d'API
obsolètes et les violations de sécurité.
15
Cadres: divise les pages et les ressources en plusieurs vues et affiche des
informations pertinentes, telles que Sécurité et
isolation, Content Security Policy, Disponibilité de l'API, etc.
16
III. L'EVOLUTION DU PROTOCOLE HTTP :
17
2.2. HTTP 1.0 :
HTTP/0.9 était très limité. Navigateurs et serveurs l'ont rapidement étendu
vers des usages plus polyvalents. Les caractéristiques de la requête :
18
Ajout du pipelining : permet d'envoyer une seconde requête avant
que la réponse de la première ne soit complètement transmise,
diminuant le temps de latence de la communication.
Désormais les réponses par morceau sont aussi supportées.
Mise en place de la négociation de contenu pour le langage,
l'encodage et le type : le client et le serveur peuvent ainsi se
mettre d'accord sur le contenu le plus adéquat à échanger.
Grâce à l'en-tête Host, la capacité à héberger différents domaines
sur la même adresse IP autorise désormais une colocation de
serveurs.
2.4. HTTP 2 :
Les pages web sont devenues de plus en plus complexes quitte à devenir
des applications à part entière. La quantité de contenu multimédia ainsi
que le nombre de scripts permettant plus d'interactivité ont aussi
augmenté, ainsi de plus en plus de données sont transférées via des
requêtes HTTP. Les connexions HTTP/1.1 nécessite un ordre séquentiel
pour être correctement gérées. En théorie, il est possible d'utiliser plusieurs
connexions en parallèle (généralement entre 5 et 8), néanmoins, cela
implique beaucoup d'adaptation et apporte énormément de complexité.
Il est encodé en binaire plutôt qu'en texte. Il ne peut donc plus être lu
ou écrit à la main. Malgré cette difficulté, il est désormais possible
d'implémenter des techniques d'optimisation avancée.
C'est un protocole multiplexé. Plusieurs requêtes en parallèle
peuvent être gérées au sein de la même connexion, supprimant ainsi
la limitation séquentielle de HTTP/1.x.
19
HTTP/2 compresse les en-têtes, étant donné que des en-têtes
similaires sont échangés lors d'une suite de requêtes, on supprime
ainsi la duplication et l'échange inutiles des données similaires.
Il permet au serveur de remplir le cache du client avant qu'il ne soit
demandé par ce dernier, on parle alors d'évènements générés par le
serveur.
20
IV. REFERENCES :
https://www.cloudflare.com/fr-fr/learning/security/threats/owasp-top-10/
https://owasp.org/www-project-top-ten/
https://owasp.org/Top10/fr/A00_2021_Introduction/
https://developer.chrome.com/docs/devtools/overview?hl=fr
https://www.headspin.io/blog/chrome-devtools-a-complete-guide
https://developer.mozilla.org/fr/docs/Glossary
https://developer.chrome.com/docs/lighthouse/overview?hl=fr
21