2012-05-11 85 views

回答

1

你不能(可靠地)。

无论是直接查看还是作为<img>标签浏览器仍然向http://yoursite.example.com/upload/image.png发出请求,就服务器而言,这两个请求基本上是相同的。

现在大多数浏览器,从<img>标记请求将与Referer: HTTP标头,你可以在你的Apache配置用来过滤这些请求,但伴随着:

  • 这不会保护你图像,他们可以添加任何人试图获取图像,例如从命令行:curl -e 'http://my_referer.example.com' 'http://yoursite.example.com/upload/image.png'
  • 人们通过网页查看图像后,如果他们键入到他们的地址栏的URL图像很可能从他们的浏览器缓存中提供,并且无论您使用的任何服务器配置如何,它都会出现
1

你需要在mod_rewrite的,

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC] 
RewriteRule \.(gif|jpg|js|css)$ - [F] 

一定要与自己更换 “mydomain.com”。

+0

我不希望我的用户直接访问这些文件。通过这种方式,所有来自我的域名的直接访问都将被允许。 –

1

你想完成什么?你可以用base64对图像进行编码,并将它们放置在img标签的src属性本身内,使用类似于此处所做的技术:http://www.greywyvern.com/code/php/binary2base64

可能有更高级的方法来遮蔽图像数据,但最终不能不要让那些想要破解的人保持它。

相关问题