Lagra aldrig lösenord i klartext

Som ägare av en webbplats har du en skyldighet gentemot din besökare – nämligen att hålla en hög säkerhet. Även om just din webbplats inte handskas med så känsliga uppgifter, så kan användarna använda samma lösenord på andra ställen. Därför är det väldigt viktigt att du ser till att hålla en hög säkerhet på din webbplats. Bland det största misstaget du kan göra i dessa sammanhang är att lagra lösenord i klartext. Jag ska nu försöka uttrycka mig så tydligt som möjligt: GÖR ALDRIG DET! Lösenord ska aldrig vara läsbara direkt i databasen eller applikationen. Det du bör spara i databasen är en hashsumma, vilket är en typ av envägskryptering. En envägskryptering är, precis som det låter, en kryptering som bara går åt ena hållet. Det går således inte att dekryptera en hashsumma. Väldigt förenklat man kan beskriva det med hjälp av ett räkneexempel. Vi kan med hjälp av vanlig addition konstatera att 1 + 1 + 2 + 5 är lika med 9. Däremot går det inte att gå åt andra hållet – vi kan inte utgå från summan 9 och lista ut vilka tal vi har adderat med varandra. På liknande sätt fungerar hashfunktioner, om än väldigt mycket mer komplicerat.

När en användare skapar sitt konto så kör du lösenordet genom en hashfunktion och sparar hashsumman i databasen. När sedan användaren vill logga in så kör du det angivna lösenordet genom samma hashfunktion och ser om resultatet blir detsamma som i databasen. På så sätt kan vi kontrollera att rätt lösenord har skrivits in, utan att egentligen veta vad det faktiska lösenordet är. Och om någon skulle komma över databasen så kan denna inte läsa alla lösenord i klartext, utan behöver cracka hashsummorna först. Tänk också på att ha långa lösenord för att försvåra den uppgiften! Lösenorden bör också saltas, det vill säga ”blandas” med en annan textsträng.

Om du följer dessa enkla råd så kommer du få en säkrare webbplats. Sen finns det såklart väldigt mycket annat att tänka på – men det får bli i en annan artikel.