Вы можете создавать свои собственные пользовательские проверки в сеансе. Убедитесь, что он создан тем же пользовательским агентом и с того же IP-адреса.
Кроме того, сессии довольно прочные.
В разделе входа в систему вы должны сделать что-то вроде:
$_SESSION['_user_agent'] = $_SERVER['HTTP_USER_AGENT'];
$_SESSION['_remote_addr'] = $_SERVER['REMOTE_ADDR'];
, а затем вы можете проверить каждый запрос:
function sessionIsOK ()
{
return ($_SESSION['_user_agent'] == $_SERVER['HTTP_USER_AGENT'] &&
$_SESSION['_remote_addr'] == $_SERVER['REMOTE_ADDR']);
}