Impedir a chamada direta de um arquivo

Impedir a chamada direta de um arquivo

Nem tenho certeza se isso é possível; Estou em um servidor Apache. Para o arquivo localizado em:

http://www.example.com/dir/img.jpg
  • Permita que esta imagem seja carregada em uma página chamada desse diretório.
  • Não permitir que esta imagem seja carregada diretamente; ou seja. o URL acima não deve carregar
  • Impedir vincular esta imagem a uma página localizada em outro lugar

O objetivo é que o arquivo só possa ser exibido na página específica a que se destina; não deve ser visível diretamente. Isso pode ser feito?

Responder1

DeDocumentação do Apache:

Imagens embutidas bloqueadas

Descrição: Suponha que temos sob http://www.quux-corp.de/~quux/algumas páginas com gráficos GIF embutidos. Esses gráficos são bons, então outros os incorporam diretamente por meio de hiperlinks para suas páginas. Não gostamos dessa prática porque adiciona tráfego inútil ao nosso servidor.

Solução: Embora não possamos proteger 100% as imagens contra inclusão, podemos pelo menos restringir os casos em que o navegador envia um cabeçalho HTTP Referer.

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]

informação relacionada