Autor Tema: Evitar ataques inyección SQL  (Leído 459 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3046
Evitar ataques inyección SQL
« en: 06 de Noviembre de 2013, 13:56:49 »
¿Es correcto esto para evitar ataques por inyección SQL en PHP?

Utilizo PDO y bindParam de esta forma: $stm->bindParam(1, $fechaDev);

Código: [Seleccionar]
public static function getInstance()  
  {  
    if (!isset(self::$instance))  //los :: para acceder a metodos y clases estaticas.
    {  
     try{
  
      self::$instance = new PDO(self::$dns, self::$username, self::$password);  
      
      self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
     }
     catch(PDOException $e)
     {
     echo 'Error al conectar con la Base de Datos';
     }
    }  
    return self::$instance;  
  }

Código: [Seleccionar]


class Devolver{

//ATRIBUTO para conseguir la conexion
private $dbh;

public function __construct()
{
// los :: para acceder a un metodo o variable estatica de otra clase

$this->dbh = Conexion::getInstance();

}

public function get_dbh()
{
return $this->dbh;
}

/*----------------Funciones-----------------*/

function getFechaPrestamo($Id_prestamo){

$sql = "SELECT prestado FROM prestamos WHERE id_prestamo = (?)";
$stm = $this->dbh->prepare($sql);
$stm->bindParam(1, $Id_prestamo);
$stm->execute();

foreach($stm as $row){

}

return $row[0];
}

//--------------------------------------------------
function devolverLibro($IdObraPresta, $fechaDev){

$sql = "UPDATE prestamos SET devuelto = (?) WHERE id_prestamo = (?)";
$stm = $this->dbh->prepare($sql);

$stm->bindParam(1, $fechaDev);
$stm->bindParam(2, $IdObraPresta);
$stm->execute();
}

}
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡