При первой авторизации:
setcookie("hash",md5($Секретный_Ключ.$Логин.$текущий_user_agent.$текущий_ip));
setcookie("login",$Логин);
Где $Секретный_Ключ известен только нам и записан в конфиге к примеру:
$Секретный_Ключ = "hjas&^(@HJKLHN#@R#%*I!B";
теперь авторизация по кукам:
if($_COOKIES['hash'] !== md5($Секретный_Ключ.$_COOKIES['login'].$текущий_user_agent.$текущий_ip)){
// Куки не действительны
}
При таком раскладе злоумышленик должен узнать Секретный_Ключ, хранящийся на нашем сервере, User Agent пользователя на момент авторизации на сайте, узнать ip пользователя и каким то образом подделать.
Вот как то так.