Foros del Web » Programando para Internet » PHP »

Consultas a mysql con PDO, metodo correcto?

Estas en el tema de Consultas a mysql con PDO, metodo correcto? en el foro de PHP en Foros del Web. Estimados, nuevamente por el foro, en este caso para realizar una consulta mas que pedir ayuda en algo, tengo que hacer un pequeño sistema de ...
  #1 (permalink)  
Antiguo 22/07/2014, 12:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 14 años
Puntos: 1
Consultas a mysql con PDO, metodo correcto?

Estimados, nuevamente por el foro, en este caso para realizar una consulta mas que pedir ayuda en algo, tengo que hacer un pequeño sistema de avisos en mi lugar de trabajo, es algo simple, un formulario, se rellenan los campos, se cargan un par de fotos, luego una pagina que detalle todo lo publicado, y una pagina detalle de aviso, ademas de una seccion de administracion con un login donde se puede eliminar y hacer update de los avisos.
Estoy usando PDO, es nuevisimo para mi, igual php, me manejo un poco mas en c#, pero me salta la siguiente duda en tema de seguridad;

el maestro Triby , me indicó en una respuesta a un tema de subida de imagenes, que podia tener problemas de seguridad, me lei el tema que el mismo redacto sobre seguridad, inyecciones sql, etc y queria saber, si los mas experimientados en esto me peuden decir si estoy haciendo inseguro el metodo de trabajo, dejando en claro que no pretendo que sea seguridad nivel cia ni nada por el setilo, como bien dice Triby "no hay sistema 100% seguro" en el post. Actualmente estoy haciendo el crud de la siguiente manera:

Conexion a la Base de Datos:
Código PHP:
class conexion {
    
    
//Metodo conectarDB
    
public function conectarDB()
    {
    
$user="aaa";
    
$pass="aaa123";
    
$host="localhost";
    
$db="mibasedatos";
    
    
//instancia al objeto PDO
    
return $conexion= new PDO("mysql:$host;dbname=$db"$user$pass);
    
    }

    } 
Insertar Aviso:
Código PHP:
class publicaAviso  {
    
    
//Variables para Insert
    
public $mensaje;
    public 
$comuna;
    public 
$titulo_aviso;
    public 
$categoria_aviso;
    public 
$valor_producto;
    public 
$aviso;
    public 
$nombre;
    public 
$tel_celular;
    public 
$tel_fijo;
    public 
$correo_electronico;
    public 
$direccion;
    
    
//Metodo para Insertar en la DB
    
public function insertar(){
        
//establecemos la Conexion
        
$modelo= new Conexion;
        
$conexion $modelo->Conectar();
        
//Generamos la consulta
        
$sql "INSERT INTO avisos(comuna,titulo_aviso,categoria_aviso,valor_producto,aviso,
        nombre,tel_celular,tel_fijo,correo_electronico,direccion)"
;
        
$sql .= "VALUES(:comuna,:titulo_aviso,:categoria_aviso,:valor_producto,:aviso,:nombre,
        :tel_celular,:tel_fijo,:correo_electronico,:direccion)"
;
        
        
$consulta=$conexion->prepare($sql);
        
//usamos las propiedades para vincularse con los parametros
        
$consulta->bindParam(':comuna',$this->comuna);
        
$consulta->bindParam(':titulo_aviso',$this->titulo_aviso);
        
$consulta->bindParam(':categoria_aviso',$this->categoria_aviso);
        
$consulta->bindParam(':valor_producto',$this->valor_producto);
        
$consulta->bindParam(':aviso',$this->aviso);
        
$consulta->bindParam(':nombre',$this->nombre);
        
$consulta->bindParam(':tel_celular',$this->tel_celular);
        
$consulta->bindParam(':tel_fijo',$this->tel_fijo);
        
$consulta->bindParam(':correo_electronico',$this->correo_electronico);
        
$consulta->bindParam(':direccion',$this->direccion);
        
        
//comprobar de la consulta
        
if(!$consulta){
            
$this->mensaje=$conexion->errorInfo();
        }else{
            
$consulta->execute();
            echo 
"Aviso Publicado con Exito";
        }

    }
    

el eliminar, update pienso manejarlos con la misma estrutura del Insertar Aviso.

Agradesco desde ya a todos su tiempo y en comentarme su experiencia, o señalarme que puedo mejorarle para hacerlo algo mas seguro.

Saludos cordiales amigos
  #2 (permalink)  
Antiguo 22/07/2014, 12:31
Avatar de ChelitoGordillo  
Fecha de Ingreso: abril-2014
Ubicación: Tuxtla Gutierrez
Mensajes: 10
Antigüedad: 10 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Consultas a mysql con PDO, metodo correcto?

creo k aun te falta mandar el error de la base de datos asi como este...
Código PHP:
$user="aaa";
    
$pass="aaa123";
    
$host="localhost";
    
$db="mibasedatos";
     
//Conectar
    
$conexio mysql_connect($host$user $pass) or die (mysql_error());
     
    
//Seleccionar la BD a utilizar
    
mysql_select_db($db$conexio ) or die (mysql_error()); 
Una practica simple puede ayudarte a proteger tu sistema de intrusos que no deseas. En PHP es la manera más fácil de transmitir sus datos a través de la función mysql_real_escape_string. Al escapar los caracteres especiales en los campos donde el usuario puede manipular la base de datos, usted evitar ser vulnerables.

Ejemplo :
Código PHP:
// This is a vulnerable query.
$query "SELECT * FROM products WHERE name='$productname'";
mysql_query($query);

// This query is more secure
$query sprintf("SELECT * FROM products WHERE name='%s'",
mysql_real_escape_string($productname));
mysql_query($query); 
Espero k te haya ayudado saldos..

Etiquetas: crud, mysql, pdo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:01.