elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Pregunta con $_SESSION php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta con $_SESSION php  (Leído 4,457 veces)
xalupeao

Desconectado Desconectado

Mensajes: 18


Ver Perfil WWW
Pregunta con $_SESSION php
« en: 14 Agosto 2009, 11:34 am »

Bueno amigos lo que pasa es que estoy programando un panel de control y estoy tomando todos los cuidados posibles es por ello que quiero hacer la siguiente pregunta.

¿Es posible modificar el valor de las $_SESSION?

porque lo pregunto porque si yo en panel guardo el nivel del usuario

1 = admin
2 = moderador
3 = cliente

$_SESSION['nivel'] = 1;

..... alguien podria modificar su nivel y paff me caga XD





En línea

Silverhost Hosting Chile - La empresa lider de Hosting en Chile .
miguel86

Desconectado Desconectado

Mensajes: 258


Ver Perfil
Re: Pregunta con $_SESSION php
« Respuesta #1 en: 14 Agosto 2009, 13:28 pm »

Nop, las sesiones no son como las cookies que las guarda el cliente, los datos de las sesiones las mantiene el servidor y son inaccesibles al cliente (son ficheros guardados en el disco en el servidor en los directorios indicados en PHP.INI). PHP utiliza dos métodos para saber cual es la sesión activa, con una cookie con identificador único de sesión o a través de un parámetro SID (así conoce la sesión activa pero los valores de las variables de la sesión las guarda el servidor).
Por eso usar Sesiones es más seguro que usar cookies.
Salu2


En línea

Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: Pregunta con $_SESSION php
« Respuesta #2 en: 14 Agosto 2009, 13:35 pm »

esto va en desaroolo web... hace poco preguntaron algo parecido

http://foro.elhacker.net/php/sistema_de_permisos_con_php-t263754.0.html

suerte
saludos
En línea

SnakeDrak

Desconectado Desconectado

Mensajes: 243


[GPG: 0x9680A09E]


Ver Perfil
Re: Pregunta con $_SESSION php
« Respuesta #3 en: 14 Agosto 2009, 18:07 pm »

Hola,

Como dice miguel86, las sesiones se guardan en el servidor, lo que guarda el cliente es un ID que identifica a la sesión.

Lo que quieres hacer es simple, creas una clase para los usuarios, aquí te dejo un ejemplo:

Código
  1. /*****************************************
  2.  * Funciones para las cuentas
  3.  ****************************************/
  4. class ACC {
  5. public $id; // Account ID
  6. public $auser; // User ID
  7. public $pass; // Pass cifrada
  8. public $level; // Nivel
  9. /******************************************************
  10. * Inicializar la sesión de la cuenta
  11. * $_SESSION['us'] = new ACC(<columnas del select>);
  12. *****************************************************/
  13. public function ACC($a) {
  14. global $cnf;
  15. list($this->id, $this->auser, $this->pass, $this->level) = $a;
  16. $this->pass = md5(sha1($this->pass)); // ciframos la pass
  17. $this->level = (isset($cnf['lvl'][$this->level]))?$cnf['lvl'][$this->level]:$cnf['lvl']['Defecto'];
  18. return;
  19. }
  20. }
  21.  

Luego $cnf es el archivo de configuración, haces algo así:

Código
  1.  
  2. $leer = 1;
  3. $editar = 2;
  4. $crear = 4;
  5. $banear = 8;
  6.  
  7. $cnf = array ( 'lvl' => array ( "Admin" => $leer | $editar | $crear | $banear, // Todos los permisos
  8.                                  "Defecto" => $leer )); // Defecto será cuando el nivel seleccionado en la DB no exista
  9.  

Entonces cuando inicie sesión pones:

Código
  1. $_SESSION['us'] = new ACC($rs->fetch_row); // Les pasas los datos seleccionados
  2.  

Pongamos que quieres comprobar los permisos de creación:

Código
  1. if(isset($_SESSION['us'])){ // Si no está logeado
  2. header("Location: /");
  3. }
  4.  
  5. if($_SESSION['us']->level & 4)
  6. echo "Tiene permisos para crear";
  7. else echo "No tiene permisos para crear";
  8.  

Ojalá te sea de ayuda.
Saludos!
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Pregunta con $_SESSION php
« Respuesta #4 en: 14 Agosto 2009, 20:08 pm »

lo que realmente es phpsessid es un archivo guardado por su nombre de hash en el directorio temporal asignado al php, estos archivos contienen la información de sesiones en forma de array serializado (notese que no va cifrado) y lo único que tiene el visitante en su explorador es el id de la sesión que en este caso es el nombre del archivo y php maneja el contenido de ese archivo pero en ningún momento como dicen el visitante tiene acceso a esos datos pero si logras entrar en el setvidor y vas al directorio temporal que por lo general tiene permisos de escritura y lectura podrás buscar la sesión que quieres ver o modificar... tomas su string y lo desserializas con <?php unserialize(string); ?>
En línea

xalupeao

Desconectado Desconectado

Mensajes: 18


Ver Perfil WWW
Re: Pregunta con $_SESSION php
« Respuesta #5 en: 14 Agosto 2009, 22:35 pm »

Se pasaron  :D realemnte tenia esa duda porque no quiero que mi sistema sea facil de vulnerar!

Gracias.
En línea

Silverhost Hosting Chile - La empresa lider de Hosting en Chile .
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Resuelto] [Pregunta]: ¿Un usuario se puede imprimir una $_SESSION?
PHP
Leguim 4 2,543 Último mensaje 1 Octubre 2019, 03:33 am
por engel lex
[Pregunta]: mejorar las $_SESSION'S
PHP
Leguim 1 1,870 Último mensaje 7 Octubre 2019, 14:05 pm
por MinusFour
(Pregunta): Como hacer que una $_SESSION determinada dure 2 horas. « 1 2 »
Desarrollo Web
Leguim 10 4,595 Último mensaje 3 Noviembre 2019, 17:55 pm
por Leguim
[Pregunta]: Comportamiento de las $_SESSION
PHP
Leguim 4 4,094 Último mensaje 3 Agosto 2021, 04:47 am
por MinusFour
[Pregunta]: Impedir que una $_SESSION en particular se destruya
Desarrollo Web
Leguim 2 3,187 Último mensaje 21 Junio 2022, 19:49 pm
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines