Foros del Web » Programando para Internet » PHP »

Seguridad en PHP

Estas en el tema de Seguridad en PHP en el foro de PHP en Foros del Web. Hola... Es la primera vez que coloco un post aqui y espero que tenga buenos resultados, mi problema es el siguiente: Estoy diseñando una pagina ...
  #1 (permalink)  
Antiguo 12/05/2009, 20:40
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Seguridad en PHP

Hola...

Es la primera vez que coloco un post aqui y espero que tenga buenos resultados, mi problema es el siguiente:

Estoy diseñando una pagina web (PHP) en la cual un usuario se puede loguear, este usuario tiene una lista de propiedades (la pagina es de una inmobiliaria) al momento de ingresar a una propiedad en la barra de direcciones aparece algo asi "mipagina.com/detalles.php?codpro=1020"
la propiedad 1020 pertenece a ese usuario, ahora la cuestión es que si el usuario manualmente en la barra de direcciones coloca el numero "1035" por ejem. en vez del 1020 accederá a los detalles de esa propiedad pero esta propiedad no le pertence a el, no se si me dejo entender, es decir si el cambia el numero de propiedad de la barra de direcciones 1020 por cualquier otro puede acceder a cualquier propiedad sin estar asociada a ese usuario y tambien podra modificarla. Logicamente mi pregunta es como poder evitar eso.

Estuve buscando en internet y ya tengo allow_url_fopen = Off y register_globals = Off pero el problema persiste, espero que me puedan ayudar con esto. Gracias!!!
  #2 (permalink)  
Antiguo 12/05/2009, 20:50
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Seguridad en PHP

investiga sobre sessiones de usuario, por medio de estas no mostraras informacion que comprometa a tu sistema.

Ademas puedes mirar estas funciones que cree para asegurar un poco mas la informacion que pasamos por el metodo GET

Código PHP:
    function protege($cadena)
    {
        
$inicio="56gt4";
        
$fin="2thl";
        
$cadena=strrev($cadena);
        
$cadena=base64_encode($cadena);
        return 
$inicio.$cadena.$fin;    
        
        
    }
     function 
no_protege($cadena)
    {
        
$cadena=substr($cadena,5,strlen($cadena)-9);
        
$cadena=strrev(base64_decode($cadena));
        return 
$cadena;
        
    }  


$cadena="1024";
$protegida=protege($cadena); // cadena protegida
echo $protegida."<br>";
echo 
no_protege($protegida); //no protediga 
  #3 (permalink)  
Antiguo 12/05/2009, 21:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Seguridad en PHP

mmm... gracias por la respuesta, mas o menos explicame como puedo aplciar tu funcion?? el 1024 lo obtengo de una variable de formulario, y ese numero se observa en la barra de direcciones...
  #4 (permalink)  
Antiguo 12/05/2009, 21:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Seguridad en PHP

De hecho es mas simple de lo que te exponen, si ya tienes tu en una variable de sesion el ID del usuario (p.e. $_SESSION['id']), entonces solo es comparar antes de desplegar:
Código php:
Ver original
  1. <?php
  2. if( $_SESSION['id'] != $row['owner_id'] ) {
  3.     die("Esta propiedad no es tuya");
  4. }

No hay una directiva en el php.ini que magicamente compruebe que algo sea de otro usuario, eso es controles de seguridad que tu tienes que desarrollar.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:14.