vicMedlem sedan apr. 2006244 inlägg Är följande ett säkert sätt att låta användare vara automiskt inloggade? Det går alltså ut på att man skapar en nyckel som man sammanfogar med ip-adressen och sparar i databasen. Sen sparar man endast nyckeln som en kaka hos användaren.
function autoLogin() {
$db = new databaseConnection();
$user = $db->getRow(array('user', 'pass'), 'users_logininfo', array('auto_login_key'=> md5($_COOKIE['auto_login'].$_SERVER['REMOTE_ADR'])) );
$db->closeConnection();
if($this->login($user['user'], $user['pass'])) {
return true;
}
else {
setcookie('auto_login', '', time()-3500, '/');
}
}
function setAutoLogin() {
$key = md5(uniqid(rand(), true));
$db = new databaseConnection();
$user = $db->updateQuery('user_logininfo', array('auto_login_key'=>md5($key.$_SERVER['REMOTE_ADR'])));
$db->closeConnection();
setcookie('auto_login', $key, time()+31536000, '/');
}
Det finns inget säkert sätt :)
(Sedan beror det ju på vad du menar med säkert.. För mer precisia svar måste du klargöra vad din defintion av säkert är =) )
stattinMedlem sedan jan. 2005713 inlägg Det är lite som en tågräls ungefär.. :)
vicMedlem sedan apr. 2006244 inlägg hehe :) Men låt säga att en hacker vill logga in på en användares konto. Allt han vet är att autologin-kakan innehåller en krypterad sträng. Då är det väl ganska omöjligt för honom att hacka sig in, eller?
Låt säga att han känner till källkoden, han vet alltså att kakan innehåller en nyckel som sammafogas med IP-adressen. Då måste han ju typ bygga ett program som testar massa slumpade nycklar och dessutom på något sätt lura servern att han har samma IP-adress som användaren?
Jag kanske är naiv eller missar något viktigt men när jag resonerar så här känns lösningen förhållandevis säker, eller är jag ute cyklar?
Alltså: Vad ska den skydda mot? Vad är scenariot? Kommer han ha åtkomst till den datorn användaren sitter vid? Det nätverket användaren sitter i? Kan ha få använda användarens publika ip-adress på något annat sätt? Hur är det med kryptering? (ssl)
vicMedlem sedan apr. 2006244 inlägg Funktionerna i sig ska ju inte skydda mot något. Jag undrar helt enkelt om den här funktionaliteten kan utnyttjas på något sätt för en hacker att ta sig in på ett användarkonto eller om det uppstår några andra risker i och med att man erbjuder sina användare den här funktionen?
spangoMedlem sedan juni 20008 205 inlägg Jag begriper inte riktigt koden, men du verkar vara inne på rätt spår. Även om det som gossarna säger inte finns någon säker autologin (egentligen är det nästan en självmotsägelse) det är väl en hygglig kompromiss. Och det stämmer mycket riktigt att det är helvetiskt jobbigt att hitta en annan sträng som hashad tillsammans med ett annat IP ger samma resultat.
vicMedlem sedan apr. 2006244 inlägg Ok! Det vara bara det jag ville veta, att jag inte hade tänkt helt fel. :) Koden funkar men är lite tagen ur sitt sammanhang, hade egentligen inte behövt posta den, jag undrade mer över mitt tillvägagångssätt
tack å bock
// Vic