


Pourquoi mon authentification par mot de passe salé renvoie-t-elle toujours vrai ?
Rétractation des mots de passe salés pour l'authentification
Lors de la mise en œuvre d'un site membre avec des mots de passe salés stockés dans une base de données, le mécanisme de connexion nécessite une attention particulière. Bien que l'utilisation d'une approche de mot de passe salé améliore la sécurité, elle peut également présenter des difficultés dans la vérification des informations d'identification des utilisateurs.
Problème :
Une erreur se produit sur la page de connexion des membres, où tout l'entrée semble réussir le contrôle de vérification de l'existence de l'utilisateur. Plus précisément, l'évaluation de $result === false renvoie toujours false, empêchant le comportement attendu.
Solution :
La cause première du problème réside dans l'approche pour récupérer le hachage du mot de passe de la base de données. Pour vérifier les informations d'identification de l'utilisateur, il faut d'abord récupérer le hachage du mot de passe salé correspondant au nom d'utilisateur fourni :
$saltQuery = "SELECT salt FROM users WHERE name = '$name';"; $result = mysqli_query($connect, $saltQuery); $row = mysqli_fetch_assoc($result); $salt = $row['salt'];
Une fois le sel obtenu, il doit être utilisé pour hacher le mot de passe fourni :
$saltedPW = $password.$salt; $hashedPW = hash('sha256', $saltedPW);
Le mot de passe haché résultant doit ensuite être utilisé pour interroger la base de données sur l'existence de l'utilisateur :
$sqlQuery = "SELECT * FROM users WHERE name = '$name' AND password = '$hashedPW'";
En outre Considérations :
Lors de la vérification des mots de passe, il est crucial d'utiliser des fonctions de hachage de mot de passe solides comme bcrypt ou Argon2, qui fournissent des algorithmes de hachage sécurisés et chronophages. De plus, des instructions préparées doivent être utilisées pour empêcher les attaques par injection SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

MySQLDIFFERSFromothersqlDialictsinsyntaxforlimit, auto-imprémentation, stringcomparison, sous-questionnaires et performanceanalysis.1) MySqluseSlimit, WhilesQlServerUseStopandorAnUseSrownum.2)

Le partitionnement MySQL améliore les performances et simplifie la maintenance. 1) Diviser les grandes tables en petits morceaux par des critères spécifiques (tels que les gammes de dattes), 2) Divisez physiquement les données en fichiers indépendants, 3) MySQL peut se concentrer sur des partitions connexes lors de l'interrogation, 4) L'optimiseur de requête peut ignorer les partitions non liées, 5) le choix de la bonne stratégie de partition et le maintenir régulièrement est la clé.

Comment accorder et révoquer les autorisations dans MySQL? 1. Utilisez la déclaration de subvention pour accorder des autorisations, telles que GrantallPrivilegesondatabase_Name.to'Username'@'host '; 2. Utilisez la déclaration de révocation pour révoquer les autorisations, telles que Revokeallprivilegesondatabase_name.from'username'@'host 'pour garantir la communication opportune des modifications d'autorisation.

INNODB convient aux applications qui nécessitent un support de transaction et une concurrence élevée, tandis que Myisam convient aux applications qui nécessitent plus de lectures et moins d'écritures. 1.InNODB prend en charge les verrous de transaction et de bancs, adaptés aux systèmes de commerce électronique et bancaire. 2.Myisam fournit une lecture et une indexation rapides, adaptées aux systèmes de blogs et de gestion de contenu.

Il existe quatre types de jointures principales dans MySQL: innerjoin, gauche, droite et fullouterjoin. 1.Innerjoin Renvoie toutes les lignes dans les deux tableaux qui remplissent les conditions de jointure. 2.Leftjoin Renvoie toutes les lignes de la table de gauche, même s'il n'y a pas de lignes correspondantes dans la table droite. 3. Le droit est contraire à la gauche et renvoie toutes les lignes dans la table droite. 4.FulLouterJoin Renvoie toutes les lignes dans les deux tableaux qui se rencontrent ou ne remplissent pas les conditions de jointure.

MySQLoffersVariousStorageEngines, chacune, chacun desCasses: 1) InnodbisidealForApplications newedingacidcompenciance and highcurrency, soutenant les transactions et manqueurs

Les vulnérabilités de sécurité courantes dans MySQL incluent l'injection SQL, les mots de passe faibles, la configuration d'autorisation incorrecte et les logiciels unpudés. 1. L'injection SQL peut être évitée en utilisant des instructions de prétraitement. 2. Les mots de passe faibles peuvent être évités en utilisant de force des stratégies de mot de passe solides. 3. Une mauvaise configuration d'autorisation peut être résolue par examen régulier et ajustement des autorisations utilisateur. 4. Les logiciels unpus peuvent être corrigés en vérifiant et mise à jour régulièrement la version MySQL.

L'identification des requêtes lentes dans MySQL peut être réalisée en activant les journaux de requête lents et en définissant des seuils. 1. Activer les journaux de requête lents et définir les seuils. 2. Afficher et analyser les fichiers journaux de requête lente et utiliser des outils tels que MySqlDumpSlow ou Pt-Query-digest pour une analyse approfondie. 3. Optimisation des requêtes lentes peut être réalisée grâce à l'optimisation de l'index, à la réécriture de la requête et à l'évitement de l'utilisation de Select *.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Dreamweaver Mac
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel
