Foros del Web » Programando para Internet » PHP »

Seguridad Programa en php

Estas en el tema de Seguridad Programa en php en el foro de PHP en Foros del Web. Buenas, estoy desarrollando un programa en php y sql , y quisiera subirlo a una web, decir que no todo el mundo tendría acceso, solo ...
  #1 (permalink)  
Antiguo 05/08/2013, 00:46
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 1 mes
Puntos: 2
Seguridad Programa en php

Buenas, estoy desarrollando un programa en php y sql , y quisiera subirlo a una web, decir que no todo el mundo tendría acceso, solo unas pocas personas y lo que me tiene más preocupado es la seguridad, ete es el siguiente para el login y eso, si me pudierais decir si tiene algún fallo de seguridad me gustaría saberlo, y si hay también alguna manera de protegerlo un poco más :P Muchas gracias!! Decir que en todas las páginas compruebo si hay una sesión abierta y si se está logueado, si no mando para afuera.

login.html
Código HTML:
Ver original
  1. <form action="login.php" method="POST">
  2.     <table>
  3.         <tr><td>Usuario:</td><td> <input required type="text" name="user" /><br /></td></tr>
  4.         <tr><td>Contraseña:</td><td> <input required type="password" name="pass" /><br /></td></tr>
  5.     </table>
  6.     <br>
  7.     <input type="submit" style=" font-weight:900;color: white; background-color: #0F37A1; border: 3pt ridge lightgrey" value="Acceder" />
  8.     </form>

login.php
Código PHP:
Ver original
  1. require_once('funciones.php');
  2. conectar('localhost', 'user', 'pass', 'bbdd');
  3. ini_set("default_charset", "utf-8");
  4. $user = strip_tags($_POST['user']);
  5. $pass = strip_tags(sha1($_POST['pass']));
  6.  
  7. $query = mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'" AND pass="'.mysql_real_escape_string($pass).'"');
  8. if($existe = mysql_fetch_object($query))
  9. {//Si existe el usuario
  10.     $_SESSION['user'] = $user; //Guardamos la variable de sesión
  11.    
  12.    
  13.    
  14.     $consulta = mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'"');//Cogemos la fecha de la última conexion y el estado de la conexión;
  15.         while($row=mysql_fetch_array($consulta)){  
  16.             $fecha=$row['Sesion'];
  17.             $conectado=$row['Conectado'];
  18.         }
  19.    
  20.     if($conectado==1){ //Si esta como conectado, comprobamos su última conexión
  21.         $datetime1 = date_create($fecha);
  22.        
  23.         $fechaact=date("d-m-Y H:i:s", time());     
  24.        
  25.         $datetime2 = date_create($fechaact);
  26.        
  27.         $interval = date_diff($datetime2, $datetime1);
  28.  
  29.         if(($interval->format('%d%H%i'))>=00010){//Si hace más de 10 minutos que se ha conectado, dejamos al usuario entrar de nuevo
  30.             $uno=1;
  31.             $meter= mysql_query('UPDATE usuarios
  32.             SET Conectado="'.mysql_real_escape_string($uno).'",
  33.                 Sesion="'.date_format($datetime2, 'Y-m-d H:i:s').'"
  34.             WHERE  usuarios.user = "'.mysql_real_escape_string($user).'"')OR DIE ("fallo");
  35.            
  36.             $_SESSION['logged'] = 'yes';
  37.            
  38.             echo '<script>window.location="logeado.php"</script>';
  39.         }else{
  40.             echo"Este usuario está activo.";
  41.             echo"<br><br><br>
  42.             <a href='login.html'><input type='submit' style=' font-weight:900;color: white; background-color: #0F37A1; border: 3pt ridge lightgrey' value='Volver Al Inicio' onclick='location='login.html''></a>";
  43.  
  44.             exit;  
  45.         }
  46.        
  47.        
  48.     }else{
  49.         $uno=1;
  50.         $fechaact=date("d-m-Y H:i:s", time());
  51.         $datetime2 = date_create($fechaact);
  52.         //var_dump(date_format($datetime2, 'Y-m-d H:i:s'));
  53.                
  54.             $meter= mysql_query('UPDATE usuarios
  55.             SET Conectado="'.mysql_real_escape_string($uno).'",
  56.                 Sesion="'.date_format($datetime2, 'Y-m-d H:i:s').'"
  57.             WHERE  usuarios.user = "'.mysql_real_escape_string($user).'"')OR DIE ("fallo");
  58.        
  59.             $_SESSION['logged'] = 'yes';
  60.        
  61.         echo '<script>window.location="logeado.php"</script>';
  62.     }
  63.    
  64. }else{
  65.         echo 'El usuario y/o pass son incorrectos.';
  66.        
  67.         echo"<form action='login.html'>";
  68.         echo"<br><br><br><input type='submit' style=' font-weight:900;color: white; background-color: #0F37A1; border: 3pt ridge lightgrey' value='Volver Al Inicio' onclick='location='login.html''>";
  69.         echo"</form>";
  70. }

PD: para que conste, el css es que estoy en ello, pero para que tenga un poquito de formato le he puesto color a los inputs :P y perdón por el chorro
  #2 (permalink)  
Antiguo 05/08/2013, 17:31
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: Seguridad Programa en php

Lee este post, y como recomendacion intenta llamar los estilos desde un archivo css y no directamente en html,ademas de que seria mejor que vallas aplicando msqli o PDO para la conec a la base de datos.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #3 (permalink)  
Antiguo 06/08/2013, 00:42
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Seguridad Programa en php

Muchas Gracias! voy a echarle un vistazo a ver :)

Etiquetas: html, mysql, programa, seguridad, select, sql, usuarios, variable
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 12:47.