Yo cuando uso sesiones o cookies lo que hago es comprobar que los datos son correctos en la base de datos antes de proceder.
Por ejemplo, cuando un usuario se identifica puedo crear una cookie o unas variables de sesion con el id del usuario y la contraseña cifrada en MD5 o SHA1, luego en cualquier parte del código que quiero mostrar sólo a usuarios logeados hago lo siguiente:
// primero compruebo que no están vacíos
if(!empty($_SESSION['user']) && !empty($_SESSION['password']){ //conecto a la base de datos
$link=conectar();
// Si encuentra resultados quiere decir que el usuario tiene la información correcta en las variables de sesion
// AQUÍ YA ES SEGURO REALIZAR LAS OPERACIONES YA QUE EL USUARIO ES IDENTIFICADO CORRECTAMENTE
}
}
Yo creo que hacer esto es imprescindible porque las variables de sesión y las cookies pueden ser modificadas por el usuario, por lo tanto si directamente usamos la información que hay en las cookies es fácil que nos provoquen una inyección sql o que manipulen el usuario y obtengan información sin realmente estar logeados. Por lo tanto creo que es lo más seguro, comprobar siempre que la información de sesión o de cookies se corresponde con la información de la base de datos antes de mostrar o procesar información de los usuarios.