In een ander topic kwam de vraag naar boven of het verstandig was om passwords plain op te slaan (niet gehashed / gecodeerd). Mijn stelling was dat het niet uitmaakt, omdat je toch in de database moet komen om wat aan dat password te hebben. Als je toch de database gehacked hebt, waarom zou je dan nog willen inloggen als user X? Je kan immers alles al omdat je in de database kan.
Hierop kreeg ik de volgende antwoorden:
Een database is niet onhackbaar.
Inderdaad, maar dat is een groter probleem dan dat er vervolgens passwords te vinden zijn. Men kan daar veel interessanter informatie uithalen, zoals emailadressen, creditcardgegevens etcetera.
Een administrator die kwaad wil, kan met een password van gebruiker X ook wellicht op website Y rottigheid uithalen.
Inderdaad. Maar stel nu dat de adminstrator niet de beschikking heeft over mijn plain-text wachtwoord, maar wel user X een hak wil zetten. Dan bouwt hij toch een scriptje die het password plain kopieert naar een mailtje zodra user X inlogt?
Een gebruiker met alleen SELECT-rechten kan een password uit de user-tabel vissen en vervolgens meer rechten krijgen door met dit wachtwoord in te loggen.
Is waar. Maar hoe veel websites maken gebruik van meerdere SQL-users met uiteenlopende rechten? Als je een 'standaard' hosting-accountje hebt, krijg je meestal maar één sql user toegewezen, mèt schrijfrechten.
Oftewel; de kans dat er misbruik gemaakt wordt van plain-text wachtwoorden acht ik zeer klein. Mits je weet hoe je de rest van je site moet beveiligen. Geen phpmyadmin zonder .htaccess openlaten, parse-errors uitsluiten, altijd addslashes voordat een query de database in gaat, etcetera. Het voorkomen van een 'open' database vind ik vele malen belangrijker dan het opslaan van gecodeerde wachtwoorden.
Dan hier nog een belangrijk argument van mij voor het opslaan van wachtwoorden in plain-text: Het e-mailen van een vergeten wachtwoord! Dat vind ik persoonlijk een goede service, zeker op sites waar je niet vaak komt. Gewoon je emailadres invullen en het wachtwoord wordt je toegezonden.
(Uiteraard is dit laatste ook vergelijkbaar uit te voeren met een gecodeerd wachtwoord. In het geval van gecodeerde wachtwoorden stuur je een emailtje met een link om het wachtwoord van een login te resetten. Het is alleen een stap extra.)
Op zich heb ik dus niets tegen het gecodeerd opslaan van wachtwoorden. Maar het gaat mij wat te ver om te zeggen dat het 'onveilig' is om wachtwoorden plain op te slaan. Een noob-webmaster die zijn wachtwoorden gecodeerd opslaat en vervolgens achterover leunt omdat-ie denkt dat zijn site veilig is, vind ik kwalijker dan iemand die bewust de passwords plain opslaan maar wel zorgt dat alles voldoende is dichtgetimmerd.
Subject open to discussion.
Hierop kreeg ik de volgende antwoorden:
Een database is niet onhackbaar.
Inderdaad, maar dat is een groter probleem dan dat er vervolgens passwords te vinden zijn. Men kan daar veel interessanter informatie uithalen, zoals emailadressen, creditcardgegevens etcetera.
Een administrator die kwaad wil, kan met een password van gebruiker X ook wellicht op website Y rottigheid uithalen.
Inderdaad. Maar stel nu dat de adminstrator niet de beschikking heeft over mijn plain-text wachtwoord, maar wel user X een hak wil zetten. Dan bouwt hij toch een scriptje die het password plain kopieert naar een mailtje zodra user X inlogt?
Een gebruiker met alleen SELECT-rechten kan een password uit de user-tabel vissen en vervolgens meer rechten krijgen door met dit wachtwoord in te loggen.
Is waar. Maar hoe veel websites maken gebruik van meerdere SQL-users met uiteenlopende rechten? Als je een 'standaard' hosting-accountje hebt, krijg je meestal maar één sql user toegewezen, mèt schrijfrechten.
Oftewel; de kans dat er misbruik gemaakt wordt van plain-text wachtwoorden acht ik zeer klein. Mits je weet hoe je de rest van je site moet beveiligen. Geen phpmyadmin zonder .htaccess openlaten, parse-errors uitsluiten, altijd addslashes voordat een query de database in gaat, etcetera. Het voorkomen van een 'open' database vind ik vele malen belangrijker dan het opslaan van gecodeerde wachtwoorden.
Dan hier nog een belangrijk argument van mij voor het opslaan van wachtwoorden in plain-text: Het e-mailen van een vergeten wachtwoord! Dat vind ik persoonlijk een goede service, zeker op sites waar je niet vaak komt. Gewoon je emailadres invullen en het wachtwoord wordt je toegezonden.
(Uiteraard is dit laatste ook vergelijkbaar uit te voeren met een gecodeerd wachtwoord. In het geval van gecodeerde wachtwoorden stuur je een emailtje met een link om het wachtwoord van een login te resetten. Het is alleen een stap extra.)
Op zich heb ik dus niets tegen het gecodeerd opslaan van wachtwoorden. Maar het gaat mij wat te ver om te zeggen dat het 'onveilig' is om wachtwoorden plain op te slaan. Een noob-webmaster die zijn wachtwoorden gecodeerd opslaat en vervolgens achterover leunt omdat-ie denkt dat zijn site veilig is, vind ik kwalijker dan iemand die bewust de passwords plain opslaan maar wel zorgt dat alles voldoende is dichtgetimmerd.
Subject open to discussion.
Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.