Evitar la llamada directa de un archivo

Evitar la llamada directa de un archivo

Ni siquiera estoy seguro de que esto sea posible; Estoy en un servidor apache. Para el archivo ubicado en:

http://www.example.com/dir/img.jpg
  • Permita que esta imagen se cargue en una página llamada desde ese directorio.
  • No permitir que esta imagen se cargue directamente; es decir. la URL anterior no debería cargarse
  • Evite vincular esta imagen desde una página ubicada en otro lugar

El propósito es que el archivo solo pueda mostrarse en la página particular a la que está destinado; no debería ser visible directamente. Se puede hacer esto?

Respuesta1

Desde eldocumentación de apache:

Imágenes en línea bloqueadas

Descripción: Supongamos que tenemos bajo http://www.quux-corp.de/~quux/algunas páginas con gráficos GIF incorporados. Estos gráficos son agradables, por lo que otros los incorporan directamente mediante hipervínculos a sus páginas. No nos gusta esta práctica porque agrega tráfico inútil a nuestro servidor.

Solución: si bien no podemos proteger al 100% las imágenes para que no se incluyan, al menos podemos restringir los casos en los que el navegador envía un encabezado 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]

información relacionada