¿Se puede prevenir la inyección de SQL con solo agregar barras (cadena)? [duplicar]

Posible duplicado:
¿Qué hace mysql_real_escape_string () que addedlashes () no hace?

Si no, he usado mysql_escape_string, y agrega caracteres a las palabras como \ r \ n, y no quiero eso ..

preguntado el 09 de enero de 11 a las 00:01

mysql_real_escape_string no agregará nada a los datos finales. Si eso le sucede a usted, comience una pregunta separada sobre eso, probablemente haya algo más en juego:

Si tiene problemas con mysql_real_escape_string () agregando cosas, asegúrese de que Magic Quotes esté APAGADO. -

4 Respuestas

No, no es seguro. Usar mysql_real_escape_string() en lugar de. No debe agregar nada más allá de lo que se necesita para escapar de la cadena.

http://php.net/mysql-real-escape-string

Esto también se aplica a otras bases de datos: utilice la función de escape específica de la extensión.

Respondido 15 ago 11, 01:08

@MichaelTontchev Se asegura de que todo se escape para una cadena SQL de la manera correcta, no solo las comillas. Aquí hay una buena explicación: stackoverflow.com/questions/3473047 - Jonás

NO, addslashes No es suficientemente bueno. mysql_escape_string no es necesariamente lo suficientemente bueno. Usar mysql_real_escape_string.

No importa si le gusta lo que agrega o no, solo escapa los caracteres para asegurarse de que la sintaxis de la consulta sea válida. Si esto se interpone en lo que está haciendo, está haciendo algo mal.

Respondido el 09 de enero de 11 a las 03:01

La mejor manera de prevenir la inyección de SQL es usar una declaración preparada con cualquiera mysqli or PDO.

Respondido el 09 de enero de 11 a las 03:01

También tiene la opción de utilizar las funciones mysqli y Prepared Statements. Esto evita en gran medida el problema en primer lugar porque todas las citas se consideran parte de los datos.

Respondido el 09 de enero de 11 a las 03:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.