CAPITULO 4  Permisos y roles
 
- esta vez vamos a proteger aun mas los archivos dandoles permisos y roles segun el usuario. un sistema basico 
- 1 vamos a crear los permisos y roles    
Código PHP:
Ver original<?php
 
// invitado = 0
// logueado , usuario normal = 1 
// logueado , usuario administrador = 2
 
 
// primero en la base de datos debemos guardar esos roles segun el usuario en el momento del registro o manualmente 
// a poder ser codificada o hasheada por si alguien accede a la base de datos no sepa el estatus de los usuarios , aunque podria intuirlo pero bueno . .
 
// por defecto los user tendran un rol 1 
 
INSERT INTO user 
(rol
) VALUES 
(sha1('1'.'salt_rol')) 
// ahora en el login seleccionaremos el rol y lo guardaremos en una session
 
SELECT rol FROM user
 
$_SESSION['ROL'] = $row['rol'];
 
 
?>
  
- 2 ya en el script de permisos.php , este se ha de incluir en todas las paginas     
Código PHP:
Ver original<?php
 
if(isset($_SESSION['ROL'])) {
    switch($_SESSION['ROL'])
    {
        case sha1('1'.'salt_rol'):         $user['rol'] = 'usuario';
        break;
 
        case sha1('2'.'salt_rol'):         $user['rol'] = 'administrador';
        break;
 
        default:
        $user['rol'] = 'invitado';
    }
}
else
{
    $user['rol'] = 'invitado';
}
 
?>
  
ya tenemos los roles ahora sera cuestion de la pagina los permisos que queramos darles por ejemplo para acceder a logout.php un usuario tiene que estar logueado por lo cual un invitado no podra leer el archivo no es logico que intente acceder un invitado a dicho archivo por lo cual solo tendran acceso usuarios y administradores 
logout.php    
Código PHP:
Ver original<?php
 
if($user['rol'] == 'usuario' || $user['rol'] == 'administrador')
{
 
// validar login
// codigo de logout
 
 
}else{
 
// denegado el acceso para cualquiera que no sea usuario o admnistrador
 
exit('no tienes acceso para ver la pagina');  
}
 
?>
  
no confundir los permisos con las validaciones de login , tambien hay que validar si el usuario es un usuario logueado  
ahora otro ejemplo index.php    
Código PHP:
Ver original<?php
 
if($user['rol'] == invitado|| $user['rol'] == 'usuario' || $user['rol'] == 'administrador')
{
 
// accesible para todos pero aqui se podria dividir contenido para usuarios o invitados
 
if($user['rol'] == 'usuario' || $user['rol'] == 'administrador')
{
 
// contenido para supuestos logueados , por que aun habria que validarlos
 
}
else
{
 
// contenido para invitados
 
}
 
}
 
?>
  
ahora si deseas dar pèrmisos de escritura deberas darselo solo a administradores     
Código PHP:
Ver original<?php
 
if($user['rol'] == 'administrador')
{
 
// contenido para escritura
 
}
 
?>
  
  
observaciones : [U]no olvides dar los permisos en tus archivos y directorios en tu hosting [U] 
Eso es todo sobre el capitulo 4 , si sabes otras maneras o mejorar lo expuesto o solo deseas mostrar tu opinion por favor exponlo .  
Saludos nos vemos nuevamente con el capitulo 5 
capitulos 
1 - proteger directorios : link 
http://www.forosdelweb.com/f18/segur...ml#post4410846
2 - manejar errores : link 
http://www.forosdelweb.com/f18/segur...ml#post4412140
3 - archivo de configuracion : link 
http://www.forosdelweb.com/f18/segur...ml#post4412159