Skip to content
Snippets Groups Projects
Commit 3c3b99ba authored by Vincent Mazenod's avatar Vincent Mazenod
Browse files

fix sidoine

parent 9f6aad17
No related branches found
No related tags found
No related merge requests found
Pipeline #4061 passed
content/slides/1337/images/sidoine/SQLi-2-https.png

89.8 KiB | W: | H:

content/slides/1337/images/sidoine/SQLi-2-https.png

89.9 KiB | W: | H:

content/slides/1337/images/sidoine/SQLi-2-https.png
content/slides/1337/images/sidoine/SQLi-2-https.png
content/slides/1337/images/sidoine/SQLi-2-https.png
content/slides/1337/images/sidoine/SQLi-2-https.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -253,7 +253,7 @@ Note: ...@@ -253,7 +253,7 @@ Note:
* ???? * ????
## Bonnes pratiques ## <i class="fa fa-medkit"></i> Bonnes pratiques
* stocker les mots de passe hashés<!-- .element class="fragment roll-in" --> * stocker les mots de passe hashés<!-- .element class="fragment roll-in" -->
...@@ -267,12 +267,43 @@ Note: ...@@ -267,12 +267,43 @@ Note:
* SHA256(admin+selsupercompliqué)<!-- .element class="fragment roll-in" --> * SHA256(admin+selsupercompliqué)<!-- .element class="fragment roll-in" -->
## <i class="fa fa-medkit"></i> Bonnes pratiques
* filtrer par TOUTES les entrées par listes blanches
* caster
* [intval()](http://php.net/manual/fr/function.intval.php), [floatval()](http://php.net/manual/fr/function.floatval.php), ...
* si l'id est toujours un entier ...
* échappement des paramètres de requêtes
* [stripslashes()](http://php.net/manual/fr/function.stripslashes.php), [mysql_real_escape_string()](http://php.net/manual/fr/function.mysql-real-escape-string.php)
## <i class="fa fa-medkit"></i> Bonnes pratiques
* [Ne plus utiliser les fonctions mysql_ leur préférer mysqli_](http://stackoverflow.com/questions/548986/mysql-vs-mysqli-in-php)
* Utiliser des requêtes préparées
* PDO, ORM : Doctrine2, Propel
* Être le plus silencieux possibles quant aux requêtes invalides
* [@](http://php.net/manual/fr/language.operators.errorcontrol.php) mais pas [or die()](http://php.net/manual/fr/function.die.php)
* [error_reporting](http://php.net/manual/fr/function.error-reporting.php), pas [mysql_error()](http://php.net/mysql_error) ni [mysqli_error()](http://php.net/manual/fr/mysqli.error.php)
* repérer les requêtes suspectes dans les logs
## <i class="fa fa-medkit"></i> Bonnes pratiques
* Web Application Firewall (WAF)
* [mod_security](https://www.modsecurity.org/)
* log le POST
* <i class="fa fa-fire"></i> [SQL Injection: Les techniques d’évasion de filtres](http://www.mcherifi.org/hacking/sql-injection-les-techniques-devasion-de-filtres.html)
* Les privilèges de l'utilisateur SQL ont un sens
* [FILE](https://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html#priv_file)
* attention aux permissions sur la base de données
* information_schema ...
* Changer les préfixes de table des CMS quand c'est possible
## SQLi de la vraie vie (2014) ## SQLi de la vraie vie (2014)
* les SQLi n'apparaissent pas (plus) de manière aussi grossière * les SQLi n'apparaissent pas (plus) de manière aussi grossière
* utilisation notamment des requêtes préparées
* échappent les paramètres
* par défaut dans toute ORM (qui se respecte)
* Voici une vraie faille du CMS drupal ... * Voici une vraie faille du CMS drupal ...
...@@ -521,7 +552,7 @@ $ whoami ...@@ -521,7 +552,7 @@ $ whoami
![w00t!!!!](images/drupalgeddon/woot.gif "w00t")<!-- .element width="100%"--> ![w00t!!!!](images/drupalgeddon/woot.gif "w00t")<!-- .element width="100%"-->
## Moralité ## <i class="fa fa-medkit"></i> Bonnes pratiques
* un malheur n'arrive jamais seul * un malheur n'arrive jamais seul
* [c.f. loi de murphy](https://fr.wiktionary.org/wiki/loi_de_Murphy) * [c.f. loi de murphy](https://fr.wiktionary.org/wiki/loi_de_Murphy)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment