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);
}
}
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";
}
}
}
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