Código PHP:
Ver original
$nombre=$_POST['nombre'] $sql="SELECT * FROM clientes WHERE nombre='".$nombre."'";
saludos.
| |||
que posibilidades hay de evitar una injecion en una consulta mysql Hola, que alternativas tengo para evitar ataques en mis consultas utilizando la base de datos mysql, si por ejemplo tengo una consulta algo como esto:
Código PHP:
Ver original saludos. |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Amigo esta funcion es del PHP y evita que exita SQL injection en tu sentencia: http://www.php.net/manual/en/function.mysql-real-escape-string.php Se usa:
Código PHP:
Ver original |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Hola JesusCova, en principio gracias por tu respuesta aunque esta funcion ya la conocia pero claro no garantiza evitar la injecion, eso es cierto?que puedo hacer para ser aun mas segura la consulta, un saludo. |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql $sql=sprintf("SELECT * FROM clientes WHERE nombre='%s' " ,mysql_real_escape_string($_POST['nombre']) ); mysql_query($sql); mejor seria asi y chico3001 tiene razon no hay nada seguro en estos tiempos que corren. |
| ||||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql De acuerdo con las respuestas, pero hay una forma más segura mysqli_stmt Las consultas preparadas, permiten ejecutar una consulta incluyendo los parámetros por medio de bindings, y es compatible con mysqli_real_escape_string |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Gracias por las respuestas, ElSiniestro me puedes poner un ejemplo de como implementar mysqli_stmt, saludos |
| ||||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Todo esto sería mas sencillo si utilizases PDO, una clase para abstraerte de la base de datos que maneja statements para poder preparar, bindear y ejecutar queries. Saludos |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Hola SetheR, sabes de algun tutorial donde te expliquen como funciona la clase PDO, para hacer seguras las consultas, gracias por la informacion saludos |
| ||||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Googleando un poco: Aqui o aqui Sobre lo de las consultas seguras, al utilizar statements preparados, PDO se encarga de limpiar las consultas.
Código PHP:
Ver original |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql La clase PDO parece que sea bastante segura trabajar con ella, pero como podria saber que funciona bien a injeciones, por ejemplo con la consulta que puse al principio del post, una consulta vulnerable a injecciones, de que manera me pueden atacar, si la consulta es esta:
Código PHP:
Ver original Espero que los expertos me puedan contestar para poder probar si el resultado final de mis consultas son seguras o por lo menos no son vulnerable a injeciones, saludos. |
| ||||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Aquí está todo sobre mysqli_stmt (insisto porque es más rápida que PDO) http://co.php.net/manual/es/class.mysqli-stmt.php Básicamente consiste en preparar una consulta con espacios en blanco (representados por símbolos "?") que son rellenados por medio de mysqli_bind_param y estos a su ven poseen variables escapadas Ahí mismo hay ejemplos Espero puedas implementarlo |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Hola ElSiniestro, gracias por tu aportacion, pero la verdad que ahora si que estoy echo un lio, no se que elejir si pdo o mysqli_stmt, alguna opinion mas sobre estas dos clases, yo voy a trabajar con mysql, saludos. |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Cita: Referente a este post, nadie me puedo decir como pueden poner la injecion con una sql asin, para comprobar que una vez cambiado mi codigo es mas seguro, saludos.
Iniciado por pithon ![]() La clase PDO parece que sea bastante segura trabajar con ella, pero como podria saber que funciona bien a injeciones, por ejemplo con la consulta que puse al principio del post, una consulta vulnerable a injecciones, de que manera me pueden atacar, si la consulta es esta:
Código PHP:
Ver original Espero que los expertos me puedan contestar para poder probar si el resultado final de mis consultas son seguras o por lo menos no son vulnerable a injeciones, saludos. |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql no creo que nadie x aki te especifique eso , pero el ataque seria atraves del nombre='".$_POST['nombre']."'"; en vez de postear un usuario su nombre en el form te ingresa codigo para ejecutar la consulta |
| ||||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql Cuando se inicia sesión, siempre se utilizan comparaciones lógicas para revisar la existencia del usuario. El riesgo de inyección es precisamente en esa comparación. Cuando alguien pasa una consulta al servidor con una comparación lógica que pone a "dudar" al servidor es cuando todo queda expuesto. Aquí puedes ver las consultas preparadas en mysql_stmt y un ejemplo de inyección SQL: http://www.jveweb.net/archivo/2011/07/sentencias-preparadas-de-mysql-en-php-ejemplos-estructurados.html http://www.jveweb.net/archivo/2011/07/un-ataque-de-inyeccion-de-sql.html Por eso para protegerse de inyección SQL, no sólo basta con proteger las consultas, sino accediendo por medio de un usuario creado en el servidor MySQL que tenga privilegios restringidos (o sea, diferente al root) y sin la opción grant; además se debe restringir el acceso exclusivamente a la base de datos que se necesita acceder, entre otras medidas de seguridad |
| |||
Respuesta: que posibilidades hay de evitar una injecion en una consulta mysql webankenovi en principio gracias por tu respuesta, entiendo que se hace asin, ya vi la forma de evitarlo. ElSiniestro muchas gracias por la informacion, saludos. |
Etiquetas: |