Comprendre pour réduire les risques des applications PHP
Les Risques
Destruction de données
Détournement de site
Publication de données confidentielles
Abus de ressources
Vol d'identité
Plan Sécurité
Conception, Développement et Maintenance
Sécurité et Pages Web
XSS
Principe et méthodes de protection
Moteur de recherche
Atelier
Mise en oeuvre et contrage d'une injection sur le site BDPhilia
CSRF
Principe et contre-mesures
Virus en base de données
Atelier
Mise en oeuvre d'une propagation sur le forum BDPhilia
Formulaires PHP : la grande porte
Les failles
Validation et limitations de l'approche JavaScript HTML5
Cookies de contrôle
Chaînage, attaques HTTP et Ajax
Contre-mesures
Token
Validation des entrées
Tests et principe des listes
Expressions régulières, standards et filtres
Upload de fichier
Api File
Contrôle des fichiers chargés
Failles et contre-mesures
Atelier
Exécution maligne d'un fichier téléchargé via le backoffice de BDPhilia
Sécurité PHP : Cookies et Sessions
Cookies
Principes et risques
Manipulation JavaScript
Tableaux de cookies
Sessions
Mode Cookie vs. Header
Principe du vol de session
Sécuriser PHP : les bons réglages
PHP.ini
Directives sensibles, sessions et erreurs
Protéger les scripts
Protection physique
Exécution de scripts distants ou à la volée
Atelier
Réglage des options sensibles. Discussion sur les conséquences au niveau développement.
Sécurité PHP : Bases de Données
Failles potentielles
Risques : données et administration
Stockage
Injections SQL
Principe et contre-mesure
Requête préparée
Procédures stockées et requêtes paramétrées
Limites
Fichiers d'accès
Organisation et valeurs par défaut
Accès anonymes et protocoles
Atelier
Réécrire ses requêtes sql en les protégeant
Sécurité PHP : PHP Object et PHP7
Ecriture Heredoc
Scope des variables et constantes
Heritage
MVC
Travailler avec des Méthodes et Class protégées
Sécuriser l'emploi des extensions en PHP
Se protéger contre le SPAM
Lire et écrire des fichiers XML
Lire et écrire des fichiers JSON
Les Webservices
Les Webservices securisées
Deserialisation dans des classSpam via un formulaire de contact : Injections et contre-mesures
Atelier
Utiliser un formulaire de contact pour envoyer un mail à 3 adresses différentes
Accès réseau par PHP
Appels séquentiels et récursifs
Attaque furtive
Atelier
Soumettre une url détournée PHP_SELF
DoS
Quotas et gestion des charges
Atelier
Test DDOS
Mots de passe
Renforcement et stockage
Création et rappel
Atelier
Projet de Recap
Chiffrement et Signature
Cryptage / décryptage : Implémentation PHP et MySql
Atelier
Cryptage des données client
Ruses de Sioux (Protection)
Pot de Miel, Obfuscation et Turing inversé
Atelier
Créer un pot de miel pour l'admin du BO, obfusquer les formulaires de recherche en MD5 et appliquer un test de Turing inversé sur le formulaire de contact
Frameworks et briques logicielles
Gestion de la sécurité dans les développements composites
Sur des frameworks PHP (Symphony Laravel…)
Audit de Sécurité
Méthodologie de base, Cross-test et Rapport d'Audit
Atelier
Rédiger un rapport d'audit sur la version de base de BDPhilia et sur les mesures prises pour améliorer la situation.