Ir para conteúdo
Fórum Script Brasil
  • 0

[PHP] Forçar downloads - 100% seguro!


Calebbe

Pergunta

Olá!

Como meu primeiro tópico aqui, vou postar um script PHP de autoria minha, com o código base do site Plug Masters (http://www.plugmasters.com.br/ )

É auto explicativo:

<?php
/*
BruteForce Download de Arquivos - Versão 2.0i
----------------//---------------->
Script original: http://www.plugmasters.com.br/ 
Modificações: Jéfones Calebe
Contato: jefonescalebe@hotmail.com

Para usar, chame assim:
<a href="get.php?id=1">Download 1</a>
<a href="get.php?id=2">Download 2</a>
----------------//---------------->
*/



if (isset($_GET['id'])){
$id = $_GET['id']; /* Pega o ID do arquivo para comparar com a array */

/* Lista com os endereços */
$d[1] = 'dvd-to-avi.exe';
$d[2] = 'index.php';
$d[3] = 'musica.mp3';


/* Loop para ler o atributo de 'id' e transformar na variável 'file'. */
for($n = 1; $n < count($d); $n++) { 
    if ($id == $n){
    $file = $d[$n];
    /* Lista de Headers para preparar a página */
    header("Content-Type: application/save");
    $tam = filesize($file);
    header("Content-Length: $tam");
    header('Content-Disposition: attachment; filename="' . $file . '"'); 
    header("Content-Transfer-Encoding: binary");
    header('Expires: 0'); 
    header('Pragma: no-cache'); 

    /* Lê e evia o arquivo para download */
    $fp = fopen("$file", "r"); 
    fpassthru($fp); 
    fclose($fp); 
    $msg = '';
} 
else {$msg = 'Arquivo não existe.';} /* Caso o arquivo não exista */
}}
else {echo 'Código do arquivo incorreto.';} /* Caso o ID não seja colocado */
if (isset($msg)){ echo $msg;} else { echo '<br>Arquivo não existe.';}
?>

É muito simples: Ele é mais seguro porque só permite o download dos arquivos pré setados na variável $d, não permitindo o download de qualquer outro arquivo que possa comprometer a segurança do site.

Opcionalmente, você pode ao invés de setar uma variável, pode dar um loop em um banco MySQL. Use a criatividade :rolleyes:

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...