Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sirve la funcion htmlspecialchars() para evitar SQL Injection?

Estas en el tema de Sirve la funcion htmlspecialchars() para evitar SQL Injection? en el foro de PHP en Foros del Web. Con la funcion htmlspecialchars() se evita que los usuario hagan inyección SQL? o hay que tomar mas precacuciones en los formularios?...
  #1 (permalink)  
Antiguo 14/07/2014, 22:22
 
Fecha de Ingreso: mayo-2013
Ubicación: Guadalajara
Mensajes: 53
Antigüedad: 11 años
Puntos: 0
Sirve la funcion htmlspecialchars() para evitar SQL Injection?

Con la funcion htmlspecialchars() se evita que los usuario hagan inyección SQL? o hay que tomar mas precacuciones en los formularios?
  #2 (permalink)  
Antiguo 15/07/2014, 00:49
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Sirve la funcion htmlspecialchars() para evitar SQL Injection?

Cita:
Iniciado por Max_4 Ver Mensaje
Con la funcion htmlspecialchars() se evita que los usuario hagan inyección SQL? o hay que tomar mas precacuciones en los formularios?
Sí, se podría, primero utilizando htmlspecialchars() para guardar el dato en la BD o para consultar ese dato en la BD, pero, el problema está en que tendría que decodificar cuando, habiendo guardado ese dato, quisieras decodificar ese dato, teniendo que pasar todos los datos por htmlspecialchars_decode().

¿Es conveniente? No, incrementarías notablemente el tiempo de ejecución en una web de alto tráfico.

¿Entonces qué es lo mejor? Utilizar lo que PHP te ofrece:

1-mysqli_real_escape_string()

2-PDO prepare y PDO Statement -> http://php.net/manual/es/pdo.prepare.php

dice lo siguiente en PDO prepare:

Cita:
Llamar a PDO::prepare() y a PDOStatement::execute() para sentencias que serán ejecutadas en múltiples ocasiones con diferentes parámetros optimiza el rendimiento de la aplicación permitiendo al driver negociar en lado del cliente y/o servidor el almacenamiento en caché del plan de consulta y meta información, y ayuda a prevenir inyecciones SQL eliminando la necesidad de entrecomillar manualmente los parámetros.
Teniendo solamente que recoger el dato por GET o POST y ya el propio PHP escapa los caracteres que considere peligrosos.

Entonces lo implementas y te olvidas de tener que confeccionar nada que tenga que contemplar infinidad de escenarios respecto al SQL injection, quitándote tiempo y rendimiento de la aplicación.
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: injection, mysql, sql
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 06:43.