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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Algo de seguridad
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algo de seguridad  (Leído 1,906 veces)
Velezano1910

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Algo de seguridad
« en: 19 Agosto 2009, 19:00 pm »

Hola, tengo algo hecho en php para que usuarios que doy de alta en una base de datos, puedan cargar una informacion.
Pero me gustaria darle algo de seguridad a esto que hice, porque el sistema de Login es muy simple. si alguien puede darme una mano lo agradezco, a continuacion dejo el codigo de "comprueba.php" el que toma el nombre de usuario y contraseña inicialmente.

<?php
    include("conexion.php");
       if ($_POST['user_nombre'])
      {
          $user_nombre=$_POST['user_nombre'];
          $user_pass=$_POST['user_pass'];
       if ($user_pass==NULL)
      {
          echo "La password no fue enviada";
      }else{
          $query = mysql_query("SELECT user_nombre,user_pass FROM user WHERE user_nombre = '$user_nombre'") or die(mysql_error());
          $data = mysql_fetch_array($query);
      if($data['user_pass'] != $user_pass) {
          echo "Login incorrecto";
      }else{
          $query = mysql_query("SELECT user_nombre,user_pass FROM user WHERE user_nombre = '$user_nombre'") or die(mysql_error());
          $row = mysql_fetch_array($query);
          $_SESSION["s_username"] = $row['user_nombre'];
          echo "Has sido logueado correctamente ".$_SESSION['s_username']." ingresar al: <a href='lala.php'>Entrar</a>";
         }
         }
      }
?>

Luego en cada página pongo este código en la cabeza:
<?php
      include("conexion.php");
   if (isset($_SESSION['s_username'])) {
?>
Y este al pie:
<?php
}else{
    echo "No estas identificado";
    echo $_SESSION['s_username'];
   }
?>

A quien me pueda ayudar, muchas gracias


En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Algo de seguridad
« Respuesta #1 en: 19 Agosto 2009, 19:50 pm »

Una cosa importante antes que nada es filtrar! todas las variables antes de trabajar con ellas. Tu código podría ser vulnerable a XSS.

Usa una función para depurar las variables siempre antes de mostrarlas o trabajar con ellas. Existen muchísimas funciones que aumentarán la seguridad como lo pueden ser

htmlentities()

strip_tags()

stripslashes()

Y un sinfin de funciones más, hay muchísimas funciones en internet para depurar variables y evitar posibles ataques.

Otra cosa que te recomendaría es cifrar las contraseñas de tu base de datos en MD5, así aunque algún atacante consiguiese acceder a la información de tu base de datos por el motivo que sea no obtendría las contraseñas de tus usuarios en texto plano.

Un saludo!


En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: Algo de seguridad
« Respuesta #2 en: 19 Agosto 2009, 20:19 pm »

Y para evitar SQL injection:
http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html
En línea

SnakeDrak

Desconectado Desconectado

Mensajes: 243


[GPG: 0x9680A09E]


Ver Perfil
Re: Algo de seguridad
« Respuesta #3 en: 19 Agosto 2009, 20:33 pm »

Hola,

Te recomiendo que siempre compruebes los datos que pasa el cliente con preg_match :D.

http://es.php.net/manual/en/function.preg-match.php
Saludos!
En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Algo de seguridad
« Respuesta #4 en: 21 Agosto 2009, 20:27 pm »

Re: Pequeños trucos en PHP
https://foro.elhacker.net/php/pequenos_trucos_en_php-t152467.0.html;msg756079#msg756079https://foro.elhacker.net/php/pequenos_trucos_en_php-t152467.0.html;msg756079#msg756079
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines