0% ont trouvé ce document utile (0 vote)
10 vues19 pages

Sécurité des Formulaires en PHP

Le document présente un cours avancé sur la sécurité des formulaires en PHP, abordant des thèmes tels que l'assainissement des données, la protection via .htaccess, et la gestion des erreurs. Il traite également de la modularité dans le code, de l'utilisation de Git pour le contrôle de version, et de l'architecture MVC. Des exemples pratiques et des exercices sont fournis pour illustrer les concepts discutés.

Transféré par

herz.tj.rak
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues19 pages

Sécurité des Formulaires en PHP

Le document présente un cours avancé sur la sécurité des formulaires en PHP, abordant des thèmes tels que l'assainissement des données, la protection via .htaccess, et la gestion des erreurs. Il traite également de la modularité dans le code, de l'utilisation de Git pour le contrôle de version, et de l'architecture MVC. Des exemples pratiques et des exercices sont fournis pour illustrer les concepts discutés.

Transféré par

herz.tj.rak
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Sécurité des Formulaires Protection .

htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Cours Web - PHP : Sécurité, Outils et Architecture


Reprise à la page 42 - Détaillée et Colorée
Thierry Vaira (tvaira@[Link])

2025

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 42/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Sommaire Détaillé du Cours Avancé

Sécurité des Formulaires


Protection .htaccess
Gestion des Erreurs et Débogage
Modularité et Inclusion de Fichiers
Outils Modernes : Git et Composer
Architecture : Le Modèle MVC

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 43/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 44/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Sécurité I : Assainissement des Données (XSS)

Problématique : L'injection de code HTML/JavaScript (XSS) via


les formulaires.
L'assainissement doit être fait juste avant l'achage.
Exemple PHP : Sécuriser un champ POST
./images/security-ic

$commentaire_brut = $_POST['commentaire'];
// 1. Nettoyage crucial avant l'affichage
$texte_securise = htmlspecialchars($commentaire_brut);

// 2. L'affichage est désormais inoffensif echo "Votre


commentaire : " . $texte_securise;

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 44/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Sécurité II : Validation et Filtrage avec filter_var


Objectif : Garantir que l'entrée utilisateur correspond au format
attendu (ex : Email, Entier).
• FILTER_VALIDATE_EMAIL : Structure d'un email.
• FILTER_VALIDATE_INT : Nombre entier valide.
Exemple PHP : Validation d'un Email

$email = 'utilisateur@[Link]';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo
"Email valide et prêt à être traité."; } else { echo
"Format d'email invalide."; }

Créez un formulaire. Validez le champ "âge" avec


FILTER_VALIDATE_INT et achez le résultat sécurisé avec
htmlspecialchars.
tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 45/ 41
Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 46/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Protection de Répertoire via .htaccess

Rôle : Fournir une première ligne de défense contre l'accès non


autorisé aux chiers sensibles (congurations, classes).
Pour sécuriser le dossier des congurations et des dépendances
(vendor) :
Fichier config/.htaccess

Refuse l'accès à tous les fichiers Require all denied


Order Allow,Deny Deny from all

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 46/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Mini TP : Protection .htaccess

Objectif : Protéger un dossier admin par mot de passe.


1. Créez un dossier admin.
2. Placez ce chier .htaccess dedans :
AuthType Basic AuthName "Zone Restreinte" AuthUserFile
/path/to/.htpasswd Require valid-user
3. Testez l'accès. Le navigateur devrait demander des
identiants, prouvant que .htaccess fonctionne.

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 47/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 48/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Gestion des Erreurs : La Conguration Sécurisée


Le danger : Acher des erreurs en production (display_errors
= On ) expose des informations critiques.
• Achage : display_errors = Off (Masque l'erreur).
• Journalisation : log_errors = On (Enregistre l'erreur sur le
serveur).
Exemple PHP : Début du script sécurisé

// Masquer les erreurs et forcer la journalisation


ini_set('display_errors', 0); ini_set('log_errors',
1);
// Enregistre tout sauf les simples notifications
error_reporting(E_ALL & E_NOTICE);
// Une erreur surviendrait ici, mais resterait masquée
à l'utilisateur
tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 48/ 41
Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Outils de Débogage et Mini TP


Débogage simple (sans IDE) : Inspection des variables à
l'exécution.
• var_dump($var) : Ache le type, la taille et la valeur.
Indispensable pour les objets et les tableaux complexes.
• print_r($var) : Plus simple et lisible pour les tableaux
simples.
TP : Débogage d'un objet

class User { public $id = 1; private $password =


'secret'; }
$u = new User(); echo "<pre>"; var_dump($u); // Révèle
les propriétés privées echo "</pre>";

Exercice : Que révèle var_dump qu'une simple print_r ne montre


pas sur un objet?
tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 49/ 41
Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 50/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Modularité : include vs require


Règle d'or : Éviter le copier-coller.
• require_once : Pour les éléments dont la présence est vitale
(classes, conguration). Arrêt fatal si échec.
• include : Pour les éléments de structure optionnels
(header/footer). Avertissement si échec, mais continue.
TP : Modularité et Chemins Absolus

L'utilisation de __DIR__ garantit que le chemin est toujours correct.


// Assure le chargement de la configuration critique
require_once __DIR__ . '/config/[Link]';
// Inclut un template de pied de page optionnel
include __DIR__ . '/templates/[Link]';
Exercice : Renommez [Link] et testez l'impact du require_once
(crash) vs include (warning).
tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 50/ 41
Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 51/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Git : Workow Essentiel


Git est le standard pour le Contrôle de Version.
1. Ajout : git add fichier (Zone de staging ).
2. Commit : git commit -m "Description claire..."
(Instantané local).
3. Partage : git push (Envoie au dépôt distant).
Rôle : Composer installe les librairies et génère l'Autoloader.
TP : Utilisation de l'Autoloader

// Charge TOUTES les classes nécessaires require


'vendor/[Link]';
use Monolog; use Monolog;
$log = new Logger('nom_appli'); $log->pushHandler(new
StreamHandler('[Link]', Logger::WARNING));
$log->warning('Ceci est un test de log.');
tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 51/ 41
Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 52/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

MVC : Le Détail des Couches

MVC est un patron d'architecture qui sépare les responsabilités


(SoC).
M Modèle : Logique métier (objets) et gestion des données.
V Vue : Code de présentation (HTML/CSS). **N'a aucune
logique métier.**
C Contrôleur : Chef d'orchestre. Il relie le Modèle et la Vue.

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 52/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Mini TP : Flux MVC Simplié

Le Flux de la Requête (Cycle de Vie)


1. Utilisateur → Contrôleur.
2. Contrôleur → Modèle (Récupère les données).
3. Modèle → Contrôleur (Retourne les données brutes).
4. Contrôleur → Vue (Transmet les données à acher).
5. Vue → Réponse HTML.
Implémenter la séparation des responsabilités : le Modèle donne les
données, la Vue les ache. Le Contrôleur est le seul à voir les deux.

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 53/ 41


Sécurité des Formulaires Protection .htaccess Gestion des Erreurs et Débogage Modularité et Inclusion de Fichiers O

Merci pour votre attention !


Questions et Débrieng du TP ?

tv (2013) Cours Web - PHP tvaira@[Link]  v0.1 54/ 41

Vous aimerez peut-être aussi