PHP - Sobre la inyección SQL

 
Vista:
Imágen de perfil de Stefano
Val: 41
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Sobre la inyección SQL

Publicado por Stefano (18 intervenciones) el 08/09/2019 09:39:54
Hola gente LWP, quisiera aclararme unas dudas que todavia no tengo muy claras...
Tengo un campo textarea de usuario donde necesito que un usuario arme su propia plantilla utilizando codigo HTML y JS.

Mi duda está en ¿que tan peligroso podría ser? ¿que otra opción recomiendan? ¿es una buena práctica guardar el contenido creado por el usuario en un campo de mi DB o es mejor guardarlo en un archivo? ¿que carácteres debo filtrar? (solo conozco mysqli_real_escape_string y htmlespecialchars)


Otra duda que tengo, ¿es necesario escapar la información que obtengo desde mi base de datos, por si acaso?


Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 2.007
Plata
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Sobre la inyección SQL

Publicado por joel (556 intervenciones) el 08/09/2019 21:04:44
Hola Stefano, todo dependerá de lo que permitas al usuario... si quieres que el código enviado por el usuario en formato HTML se interprete en el navegador, tendrás que guardarlo tal cual, sin escaparlo para que se interprete cuando lo publiques en la web.
si tu intención, es que el código HTML no se interpreta al mostrarlo en el navegador, tendrás que escaparlo como comentas.

Sin ninguna duda, es mejor guardarlo en la base de datos, te permitirá hacer búsquedas, y guardar miles de entradas sin problemas.

Yo te recomiendo utilizar PDO para la base de datos... si lo haces bien, PDO se encarga de controlar el SQL Injection...
https://www.lawebdelprogramador.com/codigo/PHP/5305-Implementacion-basica-de-una-clase-para-PDO.html
https://www.lawebdelprogramador.com/codigo/PHP/2284-Ejemplo-de-como-guardar-un-formulario-en-base-de-datos-con-PDO.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar