Foros del Web » Programando para Internet » PHP »

Es seguro mi codigo?

Estas en el tema de Es seguro mi codigo? en el foro de PHP en Foros del Web. Hola muy buenas noches mi consulta es la siguiente hermanos estoy haciendo un script en php que recoje los datos de un formulario pero el ...
  #1 (permalink)  
Antiguo 24/07/2010, 22:46
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 14 años, 3 meses
Puntos: 0
Es seguro mi codigo?

Hola muy buenas noches mi consulta es la siguiente hermanos estoy haciendo un script en php que recoje los datos de un formulario pero el problema es que no se si es seguro, estube divagando por la web y san-google para buscar informacion hacerca de como prevenir inyecciones sql la que mas abundaba era la de limpiar los datos del formulario con mysql_real_scape_string el problema es que en mssql no se como seria la consulta
por favor si pueden hacerle una correccion a mi codigo les estaria muy agradecido el codigo funciona a la perfeccion muchas gracias y espero sus respuestas

Código:
<body>
<div id="felicidades" align="center"><?
$conexion = mssql_connect("127.0.0.1", "sa", "--------fran1737");
mssql_select_db("MuOnline", $conexion);
$usuario=$_POST['user'];
$contra=$_POST['pass'];

$consulta = "SELECT * FROM MEMB_INFO WHERE memb___id = '$usuario' AND memb__pwd ='$contra'";
$resultado = mssql_query( $consulta ) or die( mysql_error() );

if(mssql_num_rows($resultado)==1)
{(		mssql_query("INSERT INTO nochevip (cuentaid,email,pass,pass1,numerodeposito,numerotarjeta) VALUES            			('{$_POST['user']}','{$_POST['email']}','{$_POST['pass']}','{$_POST['pass1']}','{$_POST['numerodeposito']}','{$_POST['numerotarjeta']}')"));		
print "<script>alert('Felisidades te has inscrito en la NOCHEVIP')</script>";
print("<script>window.location.replace('pagina donde redireccionar');</script>"); 

     }else{
       
		
print "<script>alert('Usuario o contraseña incorrecta')</script>";
print("<script>window.location.replace('index.php');</script>"); 

		
    } 

?>
</div>
</body>
  #2 (permalink)  
Antiguo 24/07/2010, 23:24
Avatar de MaTyS  
Fecha de Ingreso: enero-2009
Ubicación: Mar del Plata
Mensajes: 220
Antigüedad: 15 años, 10 meses
Puntos: 18
Respuesta: Es seguro mi codigo?

Tu código esta bien pero le puedes dar más seguridad.
Aquí un código con mayor seguridad para evitar inyecciones tipo SQL.

Código PHP:
Ver original
  1. <body>
  2. <div id="felicidades" align="center">
  3. <?php
  4. // Evitamos la inyeccion SQL
  5. // Modificamos las variables pasadas por URL
  6. foreach( $_GET as $variable => $valor ){
  7. $_GET [ $variable ] = str_replace ( "'" , "'" , $_GET [ $variable ]);
  8. }
  9. // Modificamos las variables de formularios
  10. foreach( $_POST as $variable => $valor ){
  11. $_POST [ $variable ] = str_replace ( "'" , "'" , $_POST [ $variable ]);
  12. }
  13.  
  14. $conexion = mssql_connect("127.0.0.1", "sa", "--------fran1737");
  15. mssql_select_db("MuOnline", $conexion);
  16. $usuario=$_POST['user'];
  17. $contra=$_POST['pass'];
  18.  
  19. $consulta = "SELECT * FROM MEMB_INFO WHERE memb___id = '$usuario' AND memb__pwd ='$contra'";
  20. $resultado = mssql_query( $consulta ) or die( mysql_error() );
  21.  
  22. if(mssql_num_rows($resultado)==1)
  23. {(      mssql_query("INSERT INTO nochevip (cuentaid,email,pass,pass1,numerodeposito,numerotarjeta) VALUES                       ('{$_POST['user']}','{$_POST['email']}','{$_POST['pass']}','{$_POST['pass1']}','{$_POST['numerodeposito']}','{$_POST['numerotarjeta']}')"));       
  24. print "<script>alert('Felisidades te has inscrito en la NOCHEVIP')</script>";
  25. print("<script>window.location.replace('pagina donde redireccionar');</script>");
  26.  
  27.      }else{
  28.        
  29.        
  30. print "<script>alert('Usuario o contraseña incorrecta')</script>";
  31. print("<script>window.location.replace('index.php');</script>");
  32.  
  33.        
  34.     }
  35.  
  36. ?>
  37. </div>
  38. </body>

Saludos.
  #3 (permalink)  
Antiguo 25/07/2010, 00:38
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Es seguro mi codigo?

Muchas gracias hermano, una pregunta devo modificar donde dice variable o lo dejo asi como esta saludos lo prove con un codigo de injection ' OR ''=' cuando lo meto en el input password me arroja el siguiente error




Warning: mssql_query() [function.mssql-query]: message: Línea 1: sintaxis incorrecta cerca de '\'. (severity 15) in C:\xampp-win32-1.6.8\xampp\htdocs\sql\insertar.php on line 44

Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp-win32-1.6.8\xampp\htdocs\sql\insertar.php on line 44


segun mi logica es que el codigo se esta ejecutando junto con mi codigo php osea como filtrandose en la consulta pero le da un error de sintaxis
crees que este pasando la injection o no devo preocuparme?
  #4 (permalink)  
Antiguo 25/07/2010, 11:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Es seguro mi codigo?

Cita:
Iniciado por knophix123 Ver Mensaje
Muchas gracias hermano, una pregunta devo modificar donde dice variable o lo dejo asi como esta saludos lo prove con un codigo de injection ' OR ''=' cuando lo meto en el input password me arroja el siguiente error




Warning: mssql_query() [function.mssql-query]: message: Línea 1: sintaxis incorrecta cerca de '\'. (severity 15) in C:\xampp-win32-1.6.8\xampp\htdocs\sql\insertar.php on line 44

Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp-win32-1.6.8\xampp\htdocs\sql\insertar.php on line 44


segun mi logica es que el codigo se esta ejecutando junto con mi codigo php osea como filtrandose en la consulta pero le da un error de sintaxis
crees que este pasando la injection o no devo preocuparme?
se supone que si uno limpia las variables, los errores de sintaxis no debería ocurrir... osea, porque lo único que se consigue es escapar los caracteres peligrosos... una ves hecho eso, se vuelven como cualquier otro string...

así que si tienes errores de sintaxis, no estas haciendo bien el trabajo de limpieza o bien, estas haciendo mal las consultas... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 26/07/2010, 12:50
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años, 6 meses
Puntos: 60
Respuesta: Es seguro mi codigo?

Creo que a parte de limpiar los datos debes de evitar este problema de una manera más segura.

¿como?

Revisa primero si existe el usuario y después de esto verificas la contraseña, ESTO PARA EVITAR el AND y su posible infiltración de código.

Algo como..

Código PHP:
//Buscar usuario
$consulta "SELECT usuario.usuarios FROM tabla WHERE user= '$usuario'";
$resultado mssql_query($consulta);
$row mssql_fetch_assoc($resultado);
//Ahora comparar contraseña con el usuario
if($pass==$row['pass'])
//
else
// 
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #6 (permalink)  
Antiguo 26/07/2010, 17:04
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Es seguro mi codigo?

Muchas gracias hermano se lo agradesco en el alma me parese mas seguro de la forma que me recomiendas enseguida pruebo y gracias a todos por sus respuestas

Etiquetas: seguro
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 00:19.