Citat:
Ursprungligen postat av SimonP
GET domain?UserID=1234&requestKey=BBBBBBBBBBBBBBBBBBBB &timezone=4
|
timezone behövs inte om man har specat att tiden alltid ska anges i UTC, eller om man använder sig av unix timestamp oformaterad (som ska vara lika hos klient och server även om det är olika tidszoner).
Citat:
Ursprungligen postat av SimonP
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!");
|
Här har man problemet att man kan få "false negative" om t.ex. klientens tid är
20090901055959 och serverns tid är
20090901060000. I mitt exempel löste jag det genom att även kolla tiden +/-1 om den första hashen inte matchar.