Impedir chamada direta de um arquivo

1

Eu nem tenho certeza se isso é possível; Eu estou em um servidor apache. Para o arquivo localizado em:

http://www.example.com/dir/img.jpg
  • Permitir que essa imagem seja carregada em uma página chamada desse diretório.
  • Proibir que esta imagem seja carregada diretamente; ie. o URL acima não deve ser carregado
  • Evite vincular essa imagem de uma página localizada em outro lugar

O propósito é que o arquivo só possa ser exibido na página específica à qual ele está destinado; não deve ser visível diretamente. Isso pode ser feito?

    
por ESW 20.02.2010 / 08:37

1 resposta

5

Na documentação do Apache :

Blocked Inline-Images

Description: Assume we have under http://www.quux-corp.de/~quux/ some pages with inlined GIF graphics. These graphics are nice, so others directly incorporate them via hyperlinks to their pages. We don't like this practice because it adds useless traffic to our server.

Solution: While we cannot 100% protect the images from inclusion, we can at least restrict the cases where the browser sends a HTTP Referer header.

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
RewriteRule .*\.gif$        -                                    [F]

RewriteCond %{HTTP_REFERER}         !^$
RewriteCond %{HTTP_REFERER}         !.*/foo-with-gif\.html$
RewriteRule ^inlined-in-foo\.gif$   -                        [F]
    
por 20.02.2010 / 08:59