Foros del Web » Programando para Internet » PHP »

Seguridad con las SESSIONes

Estas en el tema de Seguridad con las SESSIONes en el foro de PHP en Foros del Web. Bueno mi pregunta es esa, como puedo lograr que una sesion sea segura, para evitar que las cuentas de los usuarios sean hackeadas. Yo por ...
  #1 (permalink)  
Antiguo 13/04/2009, 10:07
Avatar de teoman15  
Fecha de Ingreso: enero-2009
Ubicación: cartago- colombia
Mensajes: 150
Antigüedad: 15 años, 3 meses
Puntos: 6
Pregunta Seguridad con las SESSIONes

Bueno mi pregunta es esa, como puedo lograr que una sesion sea segura, para evitar que las cuentas de los usuarios sean hackeadas.
Yo por ahora tengo esto, basado en lo que hizo pato12 (demasiado).

Código PHP:
<?php
/*Incluimos el archivo de conexion*/
include('con.php');
/*Transformamos POST a variables*/
session_start();
$nick $_POST['nick'];
$captcha $_POST['captcha'];
$result $_POST['resultado'];
/*las dos claves las encriptamos con sha1 y md5*/
$clave sha1(md5($_POST['clave']));
/*Comprobamos que ningun campo este vacio*/
if($captcha==NULL|$nick==NULL|$clave==NULL) {
echo 
"Algun campo esta vacio";
}else{
/*el valor de captcha dado por el usuario debe ser correcto al resultado para continuar*/
if($captcha != $result) {
echo 
"El captcha es incorrecto";
}else{
$query mysql_query("SELECT nick,clave FROM usuarios WHERE nick = '$nick'") or die(mysql_error());
$data mysql_fetch_array($query);
if(
$data['clave'] != $clave) {
echo 
"Login incorrecto";
}else{
$query mysql_query("SELECT nick,clave FROM usuarios WHERE nick = '$nick'") or die(mysql_error());
$row mysql_fetch_array($query);
$_SESSION["snick"] = $row['nick'];
echo 
'Has sido logueado correctamente '.$_SESSION['snick'].' y puedes acceder al <a href="index.php">Index</a>.'
}
}
}
?>
Como lei en el post del aporte de Pato, decia que era un sistema demasiado "hackeable" y obviamente debe ser asi, para que los estamos aprendiendo nos esforcemos mas, eso he estado haciendo, pero como aun no tengo unas bases fuertes en esto del PHP no tengo la menor idea de que debo hacer.
Por eso les pido un poco de ayuda sobre esto .

Gracias por leerme salu2
  #2 (permalink)  
Antiguo 13/04/2009, 10:24
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años
Puntos: 8

aki
$nick = $_POST['nick'];
$captcha = $_POST['captcha'];
$result = $_POST['resultado'];

al no ecapear el codigo maligno puenden inyectar ala base de datos lo que comunmente se llama SQL INJETION


AHROA PARA ESCAPAR EL COPDIGO UN EJEMPLO ES


$nick = htmlspecialchars( strip_tags( stripslashes( $_POST['nick'] ) ) ) ;
$captcha = htmlspecialchars( strip_tags( stripslashes( $_POST['captcha'] ) ) ) ;
$result = htmlspecialchars( strip_tags( stripslashes( $_POST['resultado'] ) ) ) ;




CON ESO ESCAPAS CODIGO

SALUDOS

Última edición por GatorV; 13/04/2009 a las 10:35
  #3 (permalink)  
Antiguo 13/04/2009, 10:37
Avatar de teoman15  
Fecha de Ingreso: enero-2009
Ubicación: cartago- colombia
Mensajes: 150
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Seguridad con las SESSIONes

Código PHP:
htmlspecialchars  strip_tags  stripslashes
Eran opciones que siempre habia leido pero no entendido muy bien, osea que cada una de estas evitan que una persona pueda hacer una inyeccion a la base de datos?.
Entonces para proteger todo mi script, al recibir cualquier POST o GET debo hacer este proceso?.

Gracias por ayudar
  #4 (permalink)  
Antiguo 13/04/2009, 10:38
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años
Puntos: 8
Respuesta: Seguridad con las SESSIONes

asi es , con eso tendras segura tu base de datos
  #5 (permalink)  
Antiguo 13/04/2009, 10:53
Avatar de teoman15  
Fecha de Ingreso: enero-2009
Ubicación: cartago- colombia
Mensajes: 150
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Seguridad con las SESSIONes

gracias por el interes mostrado.

Ahora me has dicho que la base de datos esta segura. si la base de datos se encuentra segura las sesiones de mis usuarios igualmente lo estan?.

Si es asi te agradezco, y si no, te agradeceria me explicaras un poco mas.
  #6 (permalink)  
Antiguo 13/04/2009, 11:47
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años
Puntos: 8
Respuesta: Seguridad con las SESSIONes

asi es mira, esk el problemas viene cuando tienes permitido qeu ingresen cualquier codigo maligno ala base de datos, como asi puedo borrar las tablas , i muchas cosas , mas , ingresar un usuario nuevo, cambier de nivel de usuario, es decir , acerme admin, imahginate todo el peligro que c corre, borrar tus users, por eso es recomendable :)
  #7 (permalink)  
Antiguo 02/07/2009, 18:05
Avatar de teoman15  
Fecha de Ingreso: enero-2009
Ubicación: cartago- colombia
Mensajes: 150
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Seguridad con las SESSIONes

y que otras utilidades son usadas al igual que

Código PHP:
htmlspecialchars  strip_tags  stripslashes
pero para consultas a la base de datos?
  #8 (permalink)  
Antiguo 02/07/2009, 19:56
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Seguridad con las SESSIONes

Todo lo tienes en mysql_real_escape_string()
  #9 (permalink)  
Antiguo 12/07/2009, 21:52
Avatar de teoman15  
Fecha de Ingreso: enero-2009
Ubicación: cartago- colombia
Mensajes: 150
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Seguridad con las SESSIONes

gracias se ve muy bien todo, seguire estudiando mas y leyendolos.

salu2
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

SíEste tema le ha gustado a 1 personas




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