Salut à tous les développeurs,
Aujourd'hui, je vous partage comment construire un système d'authentification simple et sécurisé en PHP, HTML, CSS.
les étapes:
💻 sign up
💻 Login
💻 Log out
💻 Protection les utilisateurs
- 📦 Stack utilisée :
Langage : PHP 8,css,html
Base de données : MySQL
Extensions : PDO (connexion sécurisée)
- Fonctionnalités principales :
1. sign up : Les nouveaux utilisateurs peuvent s'enregistrer via un formulaire.
2. Login : Les utilisateurs peuvent se connecter avec leur nom d'utilisateur et mot de passe.
3. Dashboard : Après la connexion, les utilisateurs sont redirigés vers leur dashboard.
4. logout: Les utilisateurs peuvent se déconnecter en toute sécurité.
- Technologies Utilisées :
- PHP pour la programmation côté serveur.
- MySQL sur la base de données et le stockage des informations.
- HTML/CSS pour l'interface utilisateur.
Comment ça marche :
- register.php
L'utilisateur remplit un formulaire.
→ On vérifie que les champs ne sont pas vides.
→ On regarde si le nom est déjà utilisé.
→ Si tout est bon, on chiffre (hash) le mot de passe avec password_hash().
→ On ajoute le nom + mot de passe chiffré dans la base de données.
- login.php
L'utilisateur entre son nom et mot de passe.
→ On vérifie que les infos existent dans la base.
→ On compare le mot de passe entré avec celui dans la base avec password_verify().
→ Si OK, on crée une session et on envoie vers dashboard.php.
- dashboard.php
Page visible seulement si l'utilisateur est connecté.
→ Sinon, il est redirigé vers login.php.
- logout.php
→ On détruit la session.
→ L'utilisateur est déconnecté et redirigé vers login.php.
- config.php
→ Connexion sécurisée à la base avec PDO.
- Base de données :
- Nous utilisons MySQL pour stocker les données avec la methode PDO.
- Le nom de db est hackathon est La table users contient des champs pour id, username, et password.
- Vous pouvez voir "db.php" pour changer le config du connexion, db_creator.sql pour créer le BD.
- Mesures de sécurité :
- Hachage des mots de passe* avec password_hash()
- Vérification sécurisée* avec password_verify()
Filtrage des entrées* avec filter_input() pour éviter les injections
Requêtes préparées* avec bindParam pour se protéger contre les injections SQL
Renouvellement d'ID de session: avec session_regenerate_id() pour éviter le vol de session
Durée de session limitée ici: 1 heure
Cookies de session sécurisés
HttpOnly : empêche l'accès via JavaScript
-
SameSite=Strict : protège contre les attaques CSRF
(CSRF (Cross-Site Request Forgery), c’est quand un site malveillant fait faire une action à ta place sans que tu le saches, pendant que tu es connecté à un autre site.)- Secure : activé si HTTPS est utilisé
Déconnexion propre avec session_unset() et session_destroy()
- Conclusion
Ce système est une base pour se connecter et s’inscrire en sécurité.
Il protège les mots de passe avec un hachage, utilise des **sessions sécurisées, et vérifie bien ce que l’utilisateur entre.
C’est simple mais assez solide pour éviter les attaques courantes
🛡 Conseils de sécurité :
Toujours utiliser password_hash() et password_verify() pour les mots de passe.
Protéger les pages sensibles avec session_start() et vérifier si l'utilisateur est connecté.
Échapper les sorties utilisateur avec htmlspecialchars() pour éviter les failles XSS.
Utiliser PDO avec des requêtes préparées pour éviter les injections SQL.
🚀 Résultat final
Un système d'authentification léger, rapide et sécurisé, idéal pour des petits projets ou pour comprendre les bases avant d'utiliser un framework.
VIDEO SUR YOUTUBE ET TOUT LES INFORMATIONS EN RELATION DE système :
{https://youtu.be/Ml1_F021u4Y?si=PBQY_2UdbIZxP7WG}