Código PHP:
o que mas puedo añadirle?Ver original
Gracias
| |||
Inyeccion SQL Hola gente, una pregunta muy basica, es cierto que para evitar una inyeccion SQL es colocar el
Código PHP:
o que mas puedo añadirle?Ver original Gracias |
| |||
Respuesta: Inyeccion SQL Entonces por que en el manual tambien especifican esto O Esto o esto Tambien miro el manual, solo que la unica que empleo es
Código PHP:
y si hace falta abrir un tema por que no? Ver original |
| |||
Respuesta: Inyeccion SQL Para mi lo mejor que puedes hacer es validar primero los datos. Esto quiere decir que si esperas un numero, compruebes que sea un numero, que si esperas una cadena de a-Z sin simbolos estraños, compruebes que es así, ecetera... Una vez validados todos los datos que los escapes con las funciones indicadas que provee el lenguaje. Igualmente que establezcas la codificacion de caracteres de la conexion con la base de datos de forma adecuada y explicita para que tanto la base de datos como php esten en concordancia, piensa que muchas de las funciones de escape como mysqli_real_escape_string() realizan su funcion en base a la codificacion establecida en la conexion que se le pasa. Al crear usuarios para la conexion con la base de datos otorgale solo los privilegios necesarios, no hay necesidad de permitirle opciones que no necesita de antemano, siempre hay tiempo de ampliar los privilegios si es que es necesario. Evita que los errores se muestren, tanto de php como de la base de datos, los errores solo deberian estar activos en la fase de desarrollo, nunca en produccion. Si has leido el manual y los enlaces que pones mas o menos vienen a decir eso. Tambien puedes utilizar sentencias preparadas como indica en el manual.
__________________ Unset($vida['malRollo']); |
| |||
Respuesta: Inyeccion SQL Hola. Primero que todo agradezco tu respuesta, me gusta que has profundizado en el tema para y no solo te has fijado en lo superficial que era la pregunta. Bueno al tema, mira los de lo de validar el campo es algo raro eh estado practicando con eso pero aun no entiendo a gran escala que hace... Oye y a que te quieres referir con esta parte "Igualmente que establezcas la codificacion de caracteres de la conexion con la base de datos de forma adecuada y explicita para que tanto la base de datos como php esten en concordancia, piensa que muchas de las funciones de escape como mysqli_real_escape_string() realizan su funcion en base a la codificacion establecida en la conexion que se le pasa." Y una ultima cosa, he tratado de hacerme una INYECCION SQL, y me sale este mensaje .. Eso quiere decir que estoy siendo vulnerable o que "Fatal error: Uncaught PDOException: SQLSTATE[42000]: " Gracias por la ayuda. |
| |||
Respuesta: Inyeccion SQL Cita: Validar los datos que el usuario ingresa no es algo raro y debería ser el primer paso.Bueno al tema, mira los de lo de validar el campo es algo raro eh estado practicando con eso pero aun no entiendo a gran escala que hace... Esto no es más que si por ejemplo tienes un campo para que usuario escriba su teléfono, compruebes que se ha introducido un teléfono válido. Si tienes un campo nombre que sea un nombre válido, por ejemplo un nombre hispano no debe contener comillas, números, símbolos matemáticos, guiones, etcétera... solo los caracteres del del alfabeto por ejemplo. Si se introduce algún dato no válido detenemos el Script y retornamos el error si corresponde. Impidiendo ejecutar el resto del código o la sentencia en cuestión. Cita: Esto se refiere a que si la base de datos es UTF8 pero la conexión desde php se establece en latin1 por ejemplo las funciones de escape como mysqli_real_escape_string y demás van a escapar los caracteres para latin1 en lugar de UTF8. Oye y a que te quieres referir con esta parte "Igualmente que establezcas la codificacion de caracteres de la conexion con la base de datos de forma adecuada y explicita para que tanto la base de datos como php esten en concordancia, piensa que muchas de las funciones de escape como mysqli_real_escape_string() realizan su funcion en base a la codificacion establecida en la conexion que se le pasa." Puedes ver más información aquí Cita: Lo más probable es que si, si haces una injeccion y obtienes un error de sintaxis algo no estas haciendo bien. Y una ultima cosa, he tratado de hacerme una INYECCION SQL, y me sale este mensaje .. Eso quiere decir que estoy siendo vulnerable o que "Fatal error: Uncaught PDOException: SQLSTATE[42000]: " Gracias por la ayuda.
__________________ Unset($vida['malRollo']); |
| |||
Respuesta: Inyeccion SQL Excelente, muy buenas tus respuesta. Las validaciones ya las he hecho,y me han funcionado correctamente. Pero seguramente esto entrara en conflicto por que mis bases de datos estan en *latin1_swedish_ci* y los datos suben como "utf8_decode" y no encuentro esa opcion en ningun lado. Rayos :/ eso es malo si aun se puede hacer una inyeccion SQL, aunque cuando ejecuto el codigo no me muestra errores, solo lo hace cuando se hace la inyeccion ... A pesar que las consultas e inserciones de datos las tengo con el
Código PHP:
.Ver original Gracias!. |
Etiquetas: |