En espérant que le correctif de la V12 relatif aux formulaires mal protégés fasse son office, je veux revenir sur l'autre faille de sécurité des pages "protégées" dont les codes sont insérés en clair en début de script (voir les images jointes).
Je suppose que les programmeurs de Toweb connaissent la technique. Néanmoins en cas d'oubli passager une simple requête à Chatgpt fournit la réponse:
REPONSE CHATGPT:
Dans une application réelle, vous ne devriez jamais stocker les mots de passe en clair ou les manipuler directement comme cela. Voici comment vous pourriez utiliser ce concept de manière sécurisée :
- Inscription : Hachage et Stockage du Mot de Passe
Lorsqu'un utilisateur s'inscrit ou modifie son mot de passe, vous devez hacher le mot de passe avant de le stocker dans la base de données.
php
Copier le code
if ($SERVER["REQUEST_METHOD"] == "POST") {
// Supposons que le mot de passe soit soumis via un champ de formulaire 'password'
$password = $POST["password"];
// Hacher le mot de passe
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);
// Stocker le mot de passe haché dans la base de données
// Utilisez une connexion à votre base de données et une requête d'insertion
// Exemple simplifié :
// $db->query("INSERT INTO users (username, password) VALUES ('$username', '$hashedPassword')");
}
- Connexion : Vérification du Mot de Passe
Lorsqu'un utilisateur se connecte, vous devez vérifier que le mot de passe fourni correspond au mot de passe haché stocké dans la base de données.
php
Copier le code
if ($SERVER["REQUEST_METHOD"] == "POST") {
// Supposons que le mot de passe soit soumis via un champ de formulaire 'password'
$password = $POST["password"];
// Récupérer le mot de passe haché depuis la base de données
// Exemple simplifié :
// $result = $db->query("SELECT password FROM users WHERE username = '$username'");
// $hashedPassword = $result->fetch_assoc()['password'];
// Vérifier le mot de passe
if (password_verify($password, $hashedPassword)) {
// Le mot de passe est correct, l'utilisateur peut se connecter
echo "Connexion réussie.";
} else {
// Le mot de passe est incorrect
echo "Nom d'utilisateur ou mot de passe incorrect.";
}
}
Points Importants
Ne stockez jamais de mots de passe en clair : Les mots de passe doivent toujours être hachés avant d'être stockés.
Utilisez des algorithmes de hachage sécurisés : password_hash avec PASSWORD_BCRYPT ou PASSWORD_ARGON2I est recommandé.
Utilisez password_verify pour la vérification : Ne comparez jamais les mots de passe en clair directement avec les valeurs hachées.
Conclusion
Le premier exemple donné montre le processus de hachage, mais pour une application réelle, les mots de passe ne doivent jamais être manipulés ou stockés en clair comme cela. Utilisez les processus d'inscription et de connexion pour sécuriser les mots de passe des utilisateurs correctement. En suivant ces pratiques, vous assurez la sécurité des mots de passe et réduisez le risque de compromission des comptes utilisateur.
J'insiste: les pages dites protégées doivent vraiment l'être.