2017-06-08 7 views
3

Quand je test ci-dessous les requêtes SQL:Pourquoi Mysql gère pas cas des cas sensibles

1. SELECT * FROM table WHERE username='username' AND password = 'password'; 

    2. SELECT * FROM table WHERE username='Username' AND password = 'Password'; 

Les deux requêtes retournent le même résultat, même si le nom d'utilisateur et mot de passe sont sensibles à la casse

+0

Vous ne devriez pas stocker les mots de passe si clair. – zerkms

Répondre

3

Utilisez cette requête

SELECT * FROM table WHERE username='Username' AND binary password = 'Password'; 
3

Syntaxe pour sensible à la casse requête

SELECT * FROM `table` WHERE BINARY `column` = 'value' 

Dans votre cas, il deviendra:

SELECT * FROM table WHERE BINARY username='Username' AND BINARY password = 'Password';