Foros del Web » Programando para Internet » PHP »

seguridad en insert

Estas en el tema de seguridad en insert en el foro de PHP en Foros del Web. Hola, tengo una duda, quisiera aplicarle seguridad a los datos antes de guardarlos en mi BD ... pero como lo hago exactamente?? . Por ejemplo ...
  #1 (permalink)  
Antiguo 21/09/2009, 10:57
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 2 meses
Puntos: 9
seguridad en insert

Hola, tengo una duda, quisiera aplicarle seguridad a los datos antes de guardarlos en mi BD ... pero como lo hago exactamente?? . Por ejemplo tengo:

Código PHP:
$fecha=$_POST['fecha'];
$hora=$_POST['hora'];
$ambiente_id=$_POST['ambientex'];
$paciente=$_POST['testinput'];
$paciente_id=$_POST['testid'];
$cita_asunto=$_POST['tratamiento'];
$cita_nota=$_POST['notas'];
$doctores_id=$_POST['doc'];

$sql="insert into cita values(null,'".$cita_fecha."','".$cita_asunto."','".$cita_nota."','1','".$paciente_id."','".$ambiente_id."');";
mysql_query($sql,$c) or die(mysql_error()); 
Pienso ponerle el mysql_real_escape_string . Es lo mismo ponerle en cada dato POST? ( mysql_real_escape_string($_POST['fecha'])) o dentro del query?

Espero su ayuda... saludos
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 21/09/2009, 11:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: seguridad en insert

pues es igual... osea, usar mysql_real_escape_string() (recuerda que el orden de los factores no altera el producto)

bueno, si... jeje, si usas tal función después de insertar los datos... ¿¿pues si entiendes el problema??

usa tu sentido común ¿cuando debes limpiar las variables... antes, durante o después del INSERT??

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/09/2009, 11:19
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 2 meses
Puntos: 9
Respuesta: seguridad en insert

Bueno es que vi ejemplos en unas webs que usaban ese comando en toda la cadena del insert ... por eso me pregunte si seria igual agregarle primero el real_escape a cada uno de los datos y dejar igual la cadena del insert. Pero bueno ya despejaste mi duda... Tambien es necesario agregarle el sprintf a la cadena del query?
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 21/09/2009, 11:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: seguridad en insert

bueno, es que hay muchas maneras de generar una cadena, sin importar como sea...

solo que debes hacerlo del mejor modo que te acomode, según tu propio estilo o reglas de programar...

por comodidad, deberias separar todas tus variable en general.. y procesarlas individualmente, así al final concatenas la cadena como desees sin problemas de legibilidad...

Código PHP:
$foo mysql_escape_real_string($_POST['foo']);
$bar mysql_escape_real_string($_POST['bar']);
$candy mysql_escape_real_string($_POST['candy']);

$sql "INSERT tabla(a,b,c) VALUES('$foo', '$bar', '$candy')"
la mayor parte del tiempo es por sentido común, para ser fácil al leer, interpretar y emplear las variables en nuestro código..

comparado a esto..
Código PHP:
$sql "INSERT tabla(a,b,c) VALUES('".mysql_escape_real_string($_POST['foo'])."', '".mysql_escape_real_string($_POST['bar'])."', '".mysql_escape_real_string($_POST['candy'])."')"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/09/2009, 11:31
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 2 meses
Puntos: 9
Respuesta: seguridad en insert

exacto me referia al primer ejemplo que me has puesto, no queria complicarme mucho ... la diferencia en la de abajo es que ponian el:

mysql_escape_real_string("VALUES('$foo', '$bar', '$candy')"); y le agregaban el sprintf
__________________
Quitenme la vida pero no la bebida.
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:13.