Cita:
Iniciado por fernandozunni Por eso te decia, que no estaba incluido el set_secure dentro de ejecutar.
Lo que podrias hacer es algo como esto.
Código PHP:
public function ejecutar($sql){
$sql=$this->set_secure($sql); //linea agregada
if(is_string($sql)){
if($this->secure){
$this->stmt=mysql_query($sql,$this->link) or die(mysql_error());
return $this->stmt;
}else{
exit('La consulta ejecutada está prohibida');
}
}
}
asi siempre vas a "sanar" aunque sea un query simple (ademas te convierte en 'true' el atributo 'secure', y no tenes que llamar al metodo set_secure por separado.
Pero esto no serviria! Porque estarias escapando la consulta entera, cosa que te generaria un error en la consulta!
La idea del metodo setSecure() es usar mysql_real_escape_string() para un dato en particular, un dato que el usuario va a ingresar y se supone puede contener codigo malintencionado.
Pero si las consultas las vas a ejecutar vos, para que queres agregar seguridad?
Lo que se puede hacer, es agregarle un parametro por defecto al metodo setSecure, asi
Código PHP:
public function setSecure($string="foo"){
if(is_string($string)){
$this->secure = true;
return mysql_real_escape_string($string);
}
}
Que no se si serviria de mucho... ya que si te olvidas de usarlo la consulta se ejecutaria igual...