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