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.

Image description

2. Login : Les utilisateurs peuvent se connecter avec leur nom d'utilisateur et mot de passe.

Image description

3. Dashboard : Après la connexion, les utilisateurs sont redirigés vers leur dashboard.

Image description

4. logout: Les utilisateurs peuvent se déconnecter en toute sécurité.

Image description

- 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()

Image description

  • Vérification sécurisée* avec password_verify()

Image description

  • 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()

Image description

- 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}

CODE GITHUB:

{https://github.com/DEV102Git/Hackathon/tree/main}