Jag och en kompis håller på o bygger en webbshop med textfiler, inte MySQL. Vi skulle vilja att alla medlemskontons lösenord blir krypterade, hur gör man detta så det blir så säkert som möjligt?
Men lösenordet skickas ju fortfarande i klartext eftersom det krypteras först på servern. Grejen är den att jag har ett JavaScript som krypterar i md5, asså innan den skickar till servern, men då är väl det scriptet lite onödigt om man ändå kan dekryptera det.
Hur gör man på stora sajter med säkerheten? Använder man bara typ crypt() på servern och inget på klientdatorn?
Någon som vet?
Inte den blekaste, men om du är så rädd för hackrare så skulle jag råda dig till att utveckla en egen krypteringsalgoritm för både JS och PHP, så att du kan kryptera och dekryptera ( ? ) både på klientsidan och serversidan.
Ursprungligen av web00132 Ok, men då borde ju crypt() vara bättre.
Envägskryptering är ju faktiskt helt värdelöst om man någonsin vill kunna dekryptera datan. Bättre är i sådana fall assymetriska algoritmer med publika/privata nycklar som exempelvis PGP/GPG gör (om det intresserar dig, sök på "public key infrastructure").
Ursprungligen av web00132Hur gör man på stora sajter med säkerheten? Använder man bara typ crypt() på servern och inget på klientdatorn?
Någon som vet?
Skulle väl gissa att de som tidigare nämnts använder SSL/HTTPS för att kryptera kommunikationen. Sen har de väl databas- och/eller applikationsservrar som ligger tryggt bakom brandväggar (inget Riktigt System skulle använda textfiler utan mycket speciella anledningar).
När det gäller lösenord är det ingen större vits med att kunna dekryptera, annat än om användaren glömmer lösenordet förstås. Men då finns ju möjligheten att skicka ett nytt lösenord till användaren istället.
MD5 är "i princip" säker och det räcker med att du använder md5-funktionen i javascript. När någon loggar in krypterar du det inmatade lösenordet med samma funktion och skickar till servern. Där jämför du de båda kryptogrammen och om det är samma har användaren fyllt i rätt lösenord. Du behöver inte känna till lösenordet i klartext.
En nackdel med den här metoden är som någon påpekade att någon kan lyssna av trafiken när det krypterade lösenordet skickas. Denne någon kan sedan simulera inloggning och skicka det krypterade lösenordet till servern. Detta kommer man åt genom att använda SSL som någon sa och det är så som "riktiga" webbplatser brukar göra.
Eftersom alla verkar veta hur man använder sig av SSL (ingen frågar ju ;) så kanske någe av er kunde vara snäll och förklara hur man använder sig av det i praktiken ? Dvs, hur kan tex Jag lägga till det på min sida ? (även om det kanske inte är nödvändigt....)
Detta kommer man åt genom att använda SSL som någon sa och det är så som "riktiga" webbplatser brukar göra.
Finns det ngn anledning att använda SSL ifall man inte har några kreditkortsfunktioner?
Sen har jag en ny fråga också.
Om man har en PASSWORD()- eller ENCRYPT()-kryptering på ett fält i en MySQL-databas så går det inte att jämföra ett lösenord med det krypterade fältet om alltihopa ligger på en Windowsserver, eller?
Som jag har förstått det så går det inte att använda PHP-funktionen crypt() på Windows och det är väl det man använder för att jämföra med ett krypterat fält i MySQL?
Tänk bara på att man även kan lyssna och fånga upp det krypterade userid:t och lösenordet. Vilket gör att det är möjligt för illasinnad att kommunicera direkt med dessa. Man beöver alltså inte veta vad klartexten är, utan bara vad som accepteras av servern.
981 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849