我有跟随.htaccess
内upload
目录:拒绝直接访问,但允许普通的HTML
order allow,deny
deny from all
我想允许<img src="upload/image.png" />
,但得到forbbiden错误(403)。
我如何拒绝直接访问,但允许html“包含”(普通html)?
我有跟随.htaccess
内upload
目录:拒绝直接访问,但允许普通的HTML
order allow,deny
deny from all
我想允许<img src="upload/image.png" />
,但得到forbbiden错误(403)。
我如何拒绝直接访问,但允许html“包含”(普通html)?
你不能(可靠地)。
无论是直接查看还是作为<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'
你需要在mod_rewrite的,
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ - [F]
一定要与自己更换 “mydomain.com”。
你想完成什么?你可以用base64对图像进行编码,并将它们放置在img标签的src属性本身内,使用类似于此处所做的技术:http://www.greywyvern.com/code/php/binary2base64
可能有更高级的方法来遮蔽图像数据,但最终不能不要让那些想要破解的人保持它。
我不希望我的用户直接访问这些文件。通过这种方式,所有来自我的域名的直接访问都将被允许。 –