oskob skrev:
Fram tills nu har jag varit ganska slarvig med kryptering av inloggning osv. Jag har på min höjd krypterat lösenorden på serversidan så de inte sparas som ren text i databaserna, men lösenordet skickas ju ändå som klartext från klienten så det känns ganska tunt. Hur lätt är det att avlyssna en klient som skickar data till en server?
Lätt och lätt. Tillvägagångssättet (paketsniffning) är välkänt men inte helt trivialt. Lite jobbigare än att knycka godis från ett småbarn men knappast som att göra intjack på Fort Knox.
oskob skrev:
Vill man gå ett steg längre kan man ju kryptera lösenordet innan det skickas med javascript och typ MD5. MD5 verkar dock inte vara så svårt att knäcka, brute force style, om någon skulle ge sig fan på det.
Det spelar ingen roll om det går att knäcka eller inte. Vet de om hashen på lösenordet behöver de ju bara skicka in den till din inloggning för att bli inloggade, eller hur? Vill du ha säker inloggning är det SSL som gäller.
Hashning är inte kryptering. Anledningen till att man hashar lösenord är delvis en fråga om personlig integritet (vissa av mina lösenord skulle nog skicka mig till Haag ;) ), delvis är det för att man ofta använder samma lösenord till olika inloggningar, men mest för att man, om man får tillgång till databasens innehåll, inte ska kunna logga in hur som helst utan att ändra lösenordet (vilket snabbt kan upptäckas).
oskob skrev:
Hur säkert är htaccess:s lösenordsskydd egentligen? Har hört ett antal gånger att det är rätt simpelt. Hur mäter det sig mot andra metoder?
Det är bara ett ramverk som kan använda flera olika backends, allt efter behov och smak. Det "säkra" i autentisering via webbservern är att man automatiskt kan låsa in hela kataloger - inklusive statiska filer etc - utan att behöva lägga in det i sin kod. Du kan få samma funktionalitet genom något webbramverk (se nedan).
oskob skrev:
Det säkraste valet, som jag har fattat det, är SSL, eftersom det gör det omöjligt för någon att "avlyssna" uppkopplingen, hur nu det går till. Men det kräver konstiga certifikat och sånt som kan kännas overkill om man inte håller på med kontonummer och liknande.
Spontant är jag böjd att hålla med. men å andra sidan är det inte direkt fel med SSL och det kan bespara framtida huvudvärk/magsår. Det kräver ingen ändring av din kod, så det är egentligen bara att plugga in och peka om några länkar så att de använder https istället. Om du tjänar pengar på din webbplats tycker jag nog att ett SSL-certifikat är en god investering.
Ett sista tips: Dumpa PHP för andra tillämpningar än snabb-/fulhack (vilket PHP är utmärkt till). Riktiga webbramverk som Asp.net och nåt ur Javadjungeln (och Ruby on Rails, och ...) har mycket bättre inramning av webbapplikationer än PHP. I PHP skriver man script som inte har någon inbördes relation (annat än i ditt huvud, och i eventuell dokumentation). Har man ett Riktigt Ramverk hålls allt samman på ett standardmässigt sätt, vilket underlättar allt enormt många saker, inklusive autentisering.

