Ver Mensaje Individual
  #23 (permalink)  
Antiguo 18/02/2010, 18:49
Avatar de jackson666
jackson666
 
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: clase conexión a MYSQL

Cita:
Iniciado por fernandozunni Ver Mensaje
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...
__________________
HV Studio
Diseño y desarrollo web