Categorias

Protegendo downloads não-autorizados com .htaccess

Esta é uma instrução muito simples que poderá proteger seus arquivos de downloads sem autorização. O código protege downloads nos formatos .zip e .rar mas poderá ser adaptado para proteger arquivos de imagens como jpg, png e outros.

Para proteger um o download de arquivos do tipo .zip e .rar, você deve criar uma pasta específica no servidor somente para armazenar o conteúdo, depois crie um arquivo do tipo ‘.htaccess’ e coloque dentro desta pasta. O arquivo ‘.htaccess’ deverá ter o seguinte conteúdo:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^https://(.+.)?seusite.com/ [NC]
RewriteRule .*.(zip|rar)$ https://www.seusite.com/erro.php [L]

Dessa forma, o usuário não terá como baixar qualquer conteúdo sem autorização, por exemplo. Como funciona:

  1. digamos que alguém queira baixar algo em .zip que esteja num área restrita à usuários em seu site;
  2. Se normalmente ele digitar na barra de endereços www.seusite.com.br/arquivo.zip o download será efetuado mesmo que este arquivo esteja em uma área restrita!
  3. Com esse procedimento é bloqueado o acesso ao arquivo digitando na barra do navegador. O acesso ao arquivo só poderá ser possível se clicar em um link com sessão aberta, e este link de acesso ao arquivo deverá ficar na área restrita à usuários do seu site
  4. No código onde tem “seusite” informe o domínio do seu site, sem o “www” ou “.com”.
  5. Logo depois, em “https://www.seusite.com/erro.php“, informe uma url que leve à uma página de erro, onde será informado que o usuário não tem permissão para baixar o arquivo desejado, caso ele queira fazer o download, efetue o login ou cadastre-se. A mensagem fica ao seu critério
  6. Na parte do código onde tem “(zip|rar)” estão as extensões que serão bloqueadas caso haja tentativa de download. Você poderia até incluir outras extensões que desejar. Por exemplo (zip|rar|jpg|png|gif) e outras.
  7. Esse código também impede o chamado “HOTLINK”, que consiste no uso de imagens de sites sem autorização dos administradores.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^https://(.+.)?seusite.com/ [NC]
RewriteRule .*.(zip|rar)$ https://www.seusite.com/erro.php  [L]