Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Pirat3net en 23 Noviembre 2012, 16:46 pm



Título: Seguridad privilegios usuario registrado
Publicado por: Pirat3net en 23 Noviembre 2012, 16:46 pm
bueno, estoy haciendo una pagina, en la cual , los usuarios ,al loguearse, acceden a una pagina loquesea.com/usuarioRegistrado, con ciertos privilegios.

los usuarios casuales, acceden a loquesea.com/index.php.

problema:
cualquier usuario puede entrar manualmente a loquesea.com/usuarioRegistrado, lo que podrea hacer cosas de usuario registrado, sin serlo, y volviendo locos los scripts cuando le pidan su id.

el caso es que quiero saver asta que punto es segura la solucion que se me ocurrio.

nada mas entrar a loquesea.com/usuarioRegistrado, poner un script, en el cual, si una variable de session que se cra alñ loguearse existe:{no pasa nada} else{header(location:'index.php')}

¿es correcto o podria darme problemas de seguridad??

gracias


Título: Re: Seguridad privilegios usuario registrado
Publicado por: gowend en 24 Noviembre 2012, 17:16 pm
Las variables de session son una buena alternativa, podrías probar de la siguiente manera:


Código:
<?PHP

$nick  = $_POST['nick'];
$pass = $_POST['pass'];

$consulta = "SELECT *  FROM table WHERE nick='$nick' AND pass = '$pass';";

//supongamos una conexion existente

$resultado = mysql_query($consulta,$varConexion);

$reg = mysql_fecth_array($resultado);

if($reg['nick']){
   $_SESSION['usuario'] = $nick;
   ?>
   <script>
      window.location='usuarioRegistrado.php';
   </script>
   <?PHP exit();
}else{
   die('usuario inexistente');
   ?>
   <script>
      window.location='index.php';
   </script>
   <?PHP
}

Espero te funcione y perdon pro el spagueti pero no suelo usar headers en PHP 5 y en cuanto a la seguridad, no habría ningun problema.


Título: Re: Seguridad privilegios usuario registrado
Publicado por: Pirat3net en 25 Noviembre 2012, 02:16 am
vale, lo que me as puesto era lo que tenia en mente, gracias por la respuesta, una cosa, ese <script> que pones, a que lenguaje pertenece? hay que indicarlo siempre no? supongo que no lo hiciste pensando que lo sabria xD , esque por ahora en programacion web solo utilizo php,
otra cosa , siempre que cierras un php en un IF, es decir
<?php
if(loquesea){
blabla...;
?>//como hago aqui
<?php   //tienes que volver a abrirlo antes de aacabar el if para que php no
            // se    vuelva loco??
}else{}

ultima pregunta y os dejo en paz,  por que evitar los headers de php para redireccionar a otra pagina?


Título: Re: Seguridad privilegios usuario registrado
Publicado por: gowend en 26 Noviembre 2012, 00:44 am
En la parte del <script></script> todo lo que se encuentra ahi dentro es javascript, yo lo hago asi pero correctamente debería ser: <script language="javascript"></script>.

En donde preguntáis por los cierres de código, tienes toda la razón hay que cerrar bien todas las llaves del if de php dentro de un bloque de código de php, para que no arroje el compilador un error de sintaxis, pero esto no debería ser así, ya que los nuevos modelos y estructuras de programación no permiten este tipo estructuras, lo hice así por que note que apenas estáis empezando, así también fue mi caso, pero mas adelante tendréis que mejorar vuestra manera de programar y aprender la programación orientada a objetos (POO).

En cuanto a los headers, tengo entendido que PHP5 ya no permite el  uso de los mismos en cualquier parte del código que no sea la primera linea, sugiero que aprendas (mas adelante, cuando lleves un poco mas de recorrido) MVC (modelo, vista y controlador), en cierta medida no tendreís  que utilizar mas la forma en la que te mostre y ni mucho menos headers. Espero te haya servido mucho.