Impedir solicitações de hotlinking por mime

1

Estou tentando impedir que as pessoas façam o hotlink de arquivos PDF e DOC. Normalmente, eu abordaria isso com uma regra de .htaccess como esta:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com/.*$ [NC]
RewriteRule \.(pdf|doc)$ /home/ [R=302,L]

No entanto, muitos desses arquivos são vinculados a scripts php como filedownload.php? id = 5, que acionam o download de um arquivo PDF / DOC. Existe uma maneira de evitar hotlinking para esses arquivos através do mime do arquivo de saída? outro jeito?

edit - adicionou esta fonte para mostrar como os arquivos são chamados:

header("Pragma: public"); 
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($fn)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$fs);
echo $upload["file_contents"];
exit();
    
por robjmills 09.09.2009 / 12:27

1 resposta

1

Eu acho que sua regra de reescrita não vai saber qual é o tipo de mime do arquivo, já que nenhum dos códigos para a resposta foi executado naquele estágio. Acho que a melhor alternativa nesta circunstância seria adicionar uma verificação de referência dentro do seu código php e redirecionar a partir daí se o referenciador não é do seu domínio.

    
por 09.09.2009 / 15:49