tienes que identificar que el propietario de la session sea el mismo del que la creo, tan solo con un identificador de session no es suficiente ya que puede ser alterado y las consecuencias que conlleva , tendras que crear alguna session que identifique al usuario en el momento de crear la session ya sea con las cabeceras , ips , etc....
un ejemplo sencillito
$_SESSION['admin'] = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].'CLAVE');
Código PHP:
Ver original<?php
if ( isset($_SESSION['admin']) and
$_SESSION['admin'] == sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].'CLAVE')) echo "Usuario con acceso a administración";
?>
Es tan solo un ejemplo
user agent y la ip igualmente puede ser alterado
tambien puedes crear una cookie ademas de la cookie de session
Código PHP:
Ver original$_SESSION['admin'] = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].'CLAVE');
setcookie('ID_ADMIN',session_id());
<?php
if ( isset($_SESSION['admin']) and
$_SESSION['admin'] == sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].'CLAVE') and
isset($_COOKIE['ID_ADMIN']) and
$_COOKIE['ID_ADMIN'] == session_id()) echo "Usuario con acceso a administración";
?>