Software">
Sécurité Des Applications Web
Sécurité Des Applications Web
Sécurité Des Applications Web
●
La requête devient donc
SELECT * FROM accounts WHERE custId = '105'; DROP TABLE
accounts ;--'
●
En devinant le nom de la table, l’utilisateur peut en effacer le contenu.
●
Une requête similaire avec un ALTER, un UPDATE ou un INSERT peut modifier
la structure de la table, modifier son contenu
Injection
●
Comment s’en prémunir
– Échappement des caractères spéciaux
● Remplacer les ' par \'
● En PHP mysqli_real_escape_string
– La requête devient
SELECT * FROM accounts WHERE
custID= '1 or \'1\'=\'1'
●
Le SGBD ne trouve aucun utilisateur
Injection
●
Comment s’en prémunir
– Utilisation des requêtes paramétrées
String custId = request.getParameter("custId");
String query = "SELECT * FROM accounts WHERE custId = ? ";
xkcd.com
Cross-site Scripting (XSS)
●
L’attaquant envoie des scripts qui exploitent interpréteur du
navigateur
●
Ces failles sont introduites lorsque l’application inclut dans la
page des données fournies par l’utilisateur
●
Attaque très fréquente qui a touché Twitter, Facebook,
Youtube...
●
Impact : l’attaquant peut exécuter des scripts dans le navigateur
de sa victime :
– Vol de sessions
– Défaçage des sites
– Redirection vers un site malveillant
Cross-Site Scripting (XSS)
●
Soit la page suivante
http://xxs.example.com/?name=Bob