我在.htaccess
目录中有以下upload
:
order allow,deny
deny from all
我想允许<img src="upload/image.png" />
但是获得forbbiden错误(403)。
我如何拒绝直接访问但允许html“包含”(常规HTML)?
答案 0 :(得分:1)
你需要mod_rewrite,
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ - [F]
请务必将“mydomain.com”替换为您自己的。
答案 1 :(得分: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'
答案 2 :(得分:1)
你想要完成什么?您可以使用类似于此处所做的技术对图像进行base64编码并将它们放置在img标记的src属性本身中:http://www.greywyvern.com/code/php/binary2base64
可能有更多先进的方法来模糊图像数据,但最终你无法阻止那些想要黑客攻击的人。