<?php
//o script sem validar baixa o arquivo determinado pelo GET
//Porem não impedi a manipulação da URL feito pelo usuário.
//Pra ficar mais seguro, utilize uma expressão regular para validar a GET.
function download_arquivo($arquivo){
//Tamanho do arquivo em bytes.
$tamanho = filesize("$arquivo");
//Pegando a extensão do arquivo.
$ext = end(explode(".",$arquivo));
//Validando a extensão.
if ($ext =="php") {
echo "Arquivo não autorizado para download!";
exit();
}
//Gerar um nome aleatório de acordo com a data & hora via MD5.
$nome = $ext."googleinurl".md5(time());
//Envia cabeçalhos HTTP informações tipo, tamanho entre outras.
header("Content-Type: application/save");
header("Content-Length: $tamanho");
header("Content-Disposition: attachment; filename=$nome.$ext");
header("Content-Transfer-Encoding: binary");
//Nesse momento envia o arquivo.
$fp = fopen("$arquivo", "r");
fpassthru($fp);
fclose($fp);
//Usando a function Dowload
download_arquivo($_GET['arquivo']);
//ex: wwww.sitevull.com.br/baixar.php?arquivo=tutorial.pdf
?>