Foros del Web » Programando para Internet » PHP »

Otro método para evitar el SQL injection

Estas en el tema de Otro método para evitar el SQL injection en el foro de PHP en Foros del Web. Hola, buenas, estaba pensando en un método para evitar el SQL injection, en especial para variables del tipo nombre y apellidos, se trata de lo ...
  #1 (permalink)  
Antiguo 20/04/2012, 10:31
 
Fecha de Ingreso: octubre-2010
Mensajes: 69
Antigüedad: 13 años, 5 meses
Puntos: 1
Sonrisa Otro método para evitar el SQL injection

Hola, buenas, estaba pensando en un método para evitar el SQL injection, en especial para variables del tipo nombre y apellidos, se trata de lo siguiente:

Código PHP:
$apellido=mysql_real_escape_string(strtr($apellido,'";\'/%',"11111")); 
lo que hace es sustituir las comillas y comillas dobles, puntocoma, barra y signo del porcentaje por el número 1, en caso de aquellos apellidos que tengan como valor "O'hara" se convertirá en O1hara y se añadirá a la base de datos.
Cuando se quiera leer ese valor de la tabla se volverá a reconvertir por JAVASCRIPT el 1 por la comilla.
¿lo veis eficaz? ¿voy por buen camino?
  #2 (permalink)  
Antiguo 20/04/2012, 10:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Otro método para evitar el SQL injection

Es mucho mejor en lugar de hacer trucos de ese tipo, usar prepared statements, así te evitas el problema de SQL Inyection. Lee la referencia de PDO: Prepared Statements.

Saludos.
  #3 (permalink)  
Antiguo 20/04/2012, 11:21
 
Fecha de Ingreso: octubre-2010
Mensajes: 69
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Otro método para evitar el SQL injection

muchas gracias!!!
  #4 (permalink)  
Antiguo 21/04/2012, 23:38
 
Fecha de Ingreso: octubre-2010
Mensajes: 69
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Otro método para evitar el SQL injection

Me he puesto a estudiar a TOPE esto del PDO, una cosilla:
Antes de meter variables con el bindParam() del statement ¿"tengo que sanitizarlos"?
Me refiero si le aplico el método sql_real_escape_string, htmlentities, etc.. antes de pasar la variable a la función bindparam().

Otra cosa (disculpadme, estoy aprendiendo), ¿son eficaces los filtros PHP? Como los FILTER_SANITIZE_xxxxx

Muchas gracias.

Etiquetas: mysql
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 08:01.