U
Usuario eliminado 44716
Hola a todos, como últimamente he visto que esto lo preguntan mucho y no he visto una respuesta del todo acertada por el foro he decidido colocar este post para que vean cual es la forma mejor de hacer esto para evitar inyecciones SQL a nuestra base de datos.
Con las inyecciones de SQL pueden modificar una consulta a nuestra base de datos introduciendo, una serie de comillas, puntos y coma y demás según nuestro código y la configuración de nuestro php.ini
Muchos creen que con agregar la función mysqli_real_scape_string() ya está todo hecho, pero hay algunos casos en los que no. También he visto gente que agrega addlashes() sin saber bien lo que hace, ni tampoco conociendo que hay casos en las que no se debe usar esta función.
Debemos saber que addlashes escapa un string con barras invertidas y que si en nuestro servidor están activadas las magic_quotes se escapará dos veces la cadena, por lo cual antes de usar esta función debemos comprobar cual es el estado de este parámetro en nuestro servidor, para eso PHP tiene su propia función.
Aquí pongo el código explicado por pasos:
Espero que les sirva y saludos :encouragement:
Con las inyecciones de SQL pueden modificar una consulta a nuestra base de datos introduciendo, una serie de comillas, puntos y coma y demás según nuestro código y la configuración de nuestro php.ini
Muchos creen que con agregar la función mysqli_real_scape_string() ya está todo hecho, pero hay algunos casos en los que no. También he visto gente que agrega addlashes() sin saber bien lo que hace, ni tampoco conociendo que hay casos en las que no se debe usar esta función.
Debemos saber que addlashes escapa un string con barras invertidas y que si en nuestro servidor están activadas las magic_quotes se escapará dos veces la cadena, por lo cual antes de usar esta función debemos comprobar cual es el estado de este parámetro en nuestro servidor, para eso PHP tiene su propia función.
Aquí pongo el código explicado por pasos:
PHP:
<?php
//Si las magic_quotes están desactivadas procedemos nosotros mismos a escapar la cadena, pero si ya están activadas, no tendremos que hacerlo
if (!get_magic_quotes_gpc()) {
$consulta = addslashes($_POST['consulta']);
}
else {
$consulta = $_POST['consulta'];
}
//Una vez hemos hecho esto si estamos usando SQL nos valemos de la función mysqli_real_escape_string que también se encarga de convertir la cadena en legal para SQL
$consulta = mysqli_real_escape_string($login,$consulta);
?>
Espero que les sirva y saludos :encouragement:
Última edición por un moderador: