FAQ |
Kalender |
![]() |
#21 | ||||
|
|||||
Mycket flitig postare
|
Citat:
Citat:
Citat:
Citat:
Jag tror det är dags att förklara förslaget lite bättre, åtminstone det protokoll som jag tänkt mig: Serverns databas innehåller: -UserID = en vanlig unik counter -userkey = en lång slumpmässigt genererad "nyckel" Klienten skickar detta: GET domain?UserID=1234&requestKey=BBBBBBBBBBBBBBBBBBBB &timezone=4 "requestKey" skapas genom SHA1(userkey+datumstämpel) på klientsidan. Här får inte datumstämplarna vara för hårt satta, klientens klocka kan diffa med många minuter, kanske en stämpel som innehåller YYYYMMDDHH eller ännu mer noggrannt, men allt beror på klienterna och vilka krav man har. Serverns klocka synkas enkelt med NTP, så den går alltid rätt. Servern verifierar med denna pseudokod: $time=time(YYYYMMDDHH)(+-timezone); $userkey = hämtas ifrån databasen, UserID används för att söka if (requestKey == SHA1($userkey+$time) process_client_request(); else die("Wrong passhash or wrong timestamp!"); Summering: -Userkey skickas aldrig i klartext -Det går ej att modifiera keys som blivit sniffade -Sniffade nycklar fungerar bara under en kort period -Genom att lägga på SSL försvårar man avlyssning (men det är knappt värt det eftersom man ändå använder tidsbegränsade nycklar) -SQL injections är egentligen det enda farliga hotet utifrån, men det är mkt enkelt att skydda sig mot genom att filtrera indata -Säkerheten går som sagt att förbättra ytterligare genom att lägga på en IP-nr koll, men det beror på hur systemet skall användas om det fungerar eller ej |
||||
![]() |
![]() |
|
|