Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/09/2012, 14:46
Avatar de rodrigo791
rodrigo791
 
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Evitar codigo malicioso en Base de datos

Buenas, mi duda es si está bien hecho esto así, ya que uso las 2 funciones una para convertir a entidades html los caracteres como <, >, etc, y otra función para escapar de los caracteres que podrían afectar la consulta SQL.

No tengo problemas con esto, solo quiero saber que piensan de usar las 2 así, he estudiado la otra función muy parecida a htmlspecialchars() que es htmlentities() y creo que no me veo obligado a usarla, creo que con htmlspecialchars() está todo mas que bien.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $conexion = mysqli_connect("localhost","root","") or die(mysqli_error($conexion)); //me conecto a servidor con extension mysqli
  4.  
  5. $base = mysqli_select_db($conexion,"basedeprueba") or die(mysqli_error($conexion)); //selecciono base de datos
  6.  
  7.  //capturo dato y aplico funciones de seguridad sql y para caracteres especiales html
  8. $nombre = htmlspecialchars(mysqli_real_escape_string($conexion,$_POST['nombre']),ENT_QUOTES);
  9. $apellido = htmlspecialchars(mysqli_real_escape_string($conexion,$_POST['apellido']),ENT_QUOTES);
  10. $email = htmlspecialchars(mysqli_real_escape_string($conexion,$_POST['email']),ENT_QUOTES);
  11.  
  12. $inserto = "INSERT INTO tablaprueba (nombre,apellido,email) VALUES('$nombre','$apellido','$email')"; //creo sentencia
  13.  
  14. $ejecuto_consulta = mysqli_query($conexion,$inserto) or die(mysqli_error($conexion));  //ejecuto sentencia
  15.  
  16. mysqli_close($conexion);
  17.  
  18. ?>

Por el momento está funcionando perfectamente, así que ya le queda para otro que quiera como aporte para la seguridad en sus proyectos.

Última edición por rodrigo791; 15/09/2012 a las 14:55