diff --git a/content/slides/1337/images/sidoine/SQLi-2-https.png b/content/slides/1337/images/sidoine/SQLi-2-https.png
index aff8f213cde749f2612cee1869b544ed597d710f..11e88108bad4c2108a1e83d7810684eb32bda0e0 100644
Binary files a/content/slides/1337/images/sidoine/SQLi-2-https.png and b/content/slides/1337/images/sidoine/SQLi-2-https.png differ
diff --git a/content/slides/1337/md/sidoine.md b/content/slides/1337/md/sidoine.md
index 1c3d7ac100fc23e19015150bafb0b759b3752343..111e024da93f31aea228b19ce765639ff8148605 100644
--- a/content/slides/1337/md/sidoine.md
+++ b/content/slides/1337/md/sidoine.md
@@ -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" -->
 
@@ -267,12 +267,43 @@ Note:
     * 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)
 
 * 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  ...
 
@@ -521,7 +552,7 @@ $ whoami
 ![w00t!!!!](images/drupalgeddon/woot.gif "w00t")<!-- .element width="100%"-->
 
 
-## Moralité
+## <i class="fa fa-medkit"></i> Bonnes pratiques
 
 * un malheur n'arrive jamais seul
   * [c.f. loi de murphy](https://fr.wiktionary.org/wiki/loi_de_Murphy)