防止直接调用文件

防止直接调用文件

我甚至不确定这是否可行;我在 Apache 服务器上。对于位于以下位置的文件:

http://www.example.com/dir/img.jpg
  • 允许将该图像加载到从该目录调用的页面中。
  • 禁止直接加载此图像;即不应加载上述 URL
  • 防止从其他页面链接此图像

目的是让文件只能显示在它所指向的特定页面上;它不能直接被查看。可以这样做吗?

答案1

来自Apache 文档

阻止内联图片

描述:假设我们有 http://www.quux-corp.de/~quux/一些页面带有内嵌的 GIF 图形。这些图形很漂亮,所以其他人直接通过超链接将它们合并到他们的页面中。我们不喜欢这种做法,因为它会给我们的服务器增加无用的流量。

解决方案:虽然我们无法 100% 保护图像不被包含,但我们至少可以限制浏览器发送 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]

相关内容