* Expliquez comment obtenir des informations sur une autre table
En connaissant le nom de la table, on pourrait tenter un select de la table puis un insert dans les champs que nous connaissons.
Nous pouvons aussi tenter de lister les tables disponibles pour ensuite attaquer des tables precises.
## Question 4
Rendre un fichier server_correct.py avec la correction de la faille de
sécurité. Expliquez comment vous avez corrigé la faille.
Notre serveur fixe se trouve dans le fichier [serveur_fix.py](./serveur_fix.py)
Nous avons corriger la faille en utilisant un cursor prepared a true (ce qui permet de definir un cursor preparant les requetes en les sanetisants). Nous avons aussi ensuite utiliser les requetes avec des parametres (en utilisant un tuple) que nous passons a lexecution. Le package mysql python se charge de creer des requetes securises en utilisant les parametres.
## Question 5
* Commande curl pour afficher une fenetre de dialog.
```
curl -v --noproxy localhost, 'http://localhost:8080/' -X POST \
-H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0' \
Nous pouvons utiliser l'un des deux scripts suivants, permettant sois de rediriger l'utilisateur vers un autre domaine, mais visible, ou discretement en lancant une requete en arriere plan.
Rendre un fichier server_xss.py avec la correction de la
faille. Expliquez la demarche que vous avez suivi.
**Rendre un fichier server_xss.py avec la correction de la
faille. Expliquez la demarche que vous avez suivi.**
Notre serveur fixe se trouve dans le fichier [serveur_fix.py](./serveur_fix.py).
Nous avons utiliser la fonction escape du module html de python permettant "d'escape" les balises html en balise non interpretable par le navigateur. Par exemple en remplacant < par `<`
**Ou vaut-il mieux réaliser ce traitement? Au moment de l'insertion des
données en base, au moment de l'affichage, les deux? Pourquoi ?**
Nous pouvons realiser cette verification dans les deux cas MAIS on ne faisant pas confiance a la premiere verification.
Meme si nous realisons cette verification au moment de l'insertion des donnees, nous devons verifier au moment de l'affichage aussi en echappant le contenu. Cette double protection fait partie du principes de "defence in depth" ou "layered security" combinant differents controle (ici des controles techniques) afin d'augmenter le niveau de cybersecurite.