Hoofdletters in wachtwoord controleren
Dit is mijn query:
Als je nu een wachtwoord hebt waar hoofdletters in zitten, en je zou het invullen zonder hoofdletters en alleen kleine letters, dan kom je ook gewoon erin.
Hoe maak je dus een query hoofdlettergevoelig?
Sla het password versleuteld op.
bv. met md5() :
md5('Test') geeft een compleet ander resultaat dan md5('test')
En zo hoort het!
Ook met betere technieken gebeurt dit.
Jij zou nooit zomaar paswoorden in je BD mogen opslaan. Je slaat het gecodeerde paswoord op.
SELECT BINARY gebruiken in plaats van SELECT. Binair is de kleine letter 'a' namelijk ongelijk aan de hoofdletter 'A'.
En als je niets versleutelt (àls), dan kun je Gewijzigd op 04/03/2013 15:28:42 door Elwin - Fratsloos
Elwin - Fratsloos op 04/03/2013 15:28:06:
Dat hangt af van de collatie die is ingesteld voor het specifieke veld of de databasetabel. Als dat een CI-collatie voor Case Insensitive is, dan is een a gelijk aan een A.Uhm.., nou kan het aan mij liggen, maar buiten het feit dat het wachtwoord gecodeerd opgeslagen zou moeten worden, is bovenstaande query toch al hoofdlettergevoelig? Er wordt immers een =-teken gebruikt. De vergelijking is toch alleen met het gebruik van 'LIKE' hoofdletterongevoelig?
Ward van der Put op 04/03/2013 15:34:19:
Dat hangt af van de collatie die is ingesteld voor het specifieke veld of de databasetabel. Als dat een CI-collatie voor Case Insensitive is, dan is een a gelijk aan een A.
Ah... Thx! :)
Ook raad ik je aan om je applicatie te voorzien van een functie die bij het inloggen kijkt of de gebruiker niet teveel met het verkeerde wachtwoord heeft ingelogd. Als dat wel het geval is, is het het beste dat je het account blokkeert alsook het ip adres voor een bepaalde tijd.
Leesvoer
Wachtwoorden veilig opslaan met Bcrypt en Hmac
PHP Hmac functie
- edit - Leesbaarheid aangepast
Gewijzigd op 04/03/2013 18:09:21 door Machiel K