Título: [Resuelto] Duda sobre como resolver Inyección SQL Publicado por: ShadowA7X en 16 Abril 2017, 18:12 pm Hola Estimados/as. Junto con saludar me gustaría recurrir a su experiencia en inyección de bases de datos sql. Resulta que tengo que impedir que se pueda realizar una inyección SQL en una base de datos SQLite. Me piden ocupar específicamente el uso de prepared
statements. Ejemplo: Código
El código que tengo (que funciona por cierto) es: Código
Me imprime por pantalla los datos del rut ingresado por medio del link del navegador. Pero como sabrán los más experimentados, a este código facilmente se le puede poner una inyección sql. He encontrado código como el siguiente: Código
El cual ocupa el método de prepare statements para evitar la injección SQL en una base de datos SQLite, pero no puedo adaptarlo al código que yo tengo. Cada cambio que le hago me lanza un error por pantalla. Hasta el momento mi principal duda es qué pongo dentro del PDO en ---new PDO('sqlite:/path/to/database.sdb');--- Si bien la base de datos que ocupo se llama navegadorcito.db, cada vez que pongo ese nombre ahí salta un error al cargar el archivo en el navegador. Ojala me pudieran dar una mano para entender qué pasa. Agradecido de antemano por leer esto, me despido. Título: Re: Duda sobre como resolver Inyección SQL Publicado por: engel lex en 16 Abril 2017, 18:20 pm si estás usando y sabes tu manejador SQLite3, no te enredes con otro.... busca como hacer prepared en SQLite3 y listo
http://php.net/manual/es/sqlite3.prepare.php (http://php.net/manual/es/sqlite3.prepare.php) sobre PDO para resolver tu pregunta Código: $db = NEW PDO('sqlite:/path/to/database.sdb'); sqlite: es el manejador, despues de ello, se manejan las rutas estilo unix (no se si es igual en windows), así que "/" será la raliz del sistema, si la db y el php están en la misma carpeta, no necesitas escalar directorios y usas a secas Código: $db = NEW PDO('sqlite:tu_base_de_datos.loquesea'); Título: Re: Duda sobre como resolver Inyección SQL Publicado por: #!drvy en 16 Abril 2017, 18:48 pm Código
Te recomiendo usar PDO dado que es universal y fácilmente adaptable a otras bases de datos si en un futuro necesitas migrar. De hecho PDO usa el mismo driver que Sqlite3 así que realmente no pierdes nada. Deberías leer un poco sobre ello antes de hacer copy paste.. http://php.net/manual/es/book.pdo.php http://www.phptherightway.com/#pdo_extension Saludos Título: Re: Duda sobre como resolver Inyección SQL Publicado por: ShadowA7X en 16 Abril 2017, 19:34 pm Chicos, inmensamente agradecido, gracias a todos sus datos entendí que me hacía falta en mi código y ahora todo funciona. Muchas gracias!!! :)
|