2012-05-11 84 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

可能有更高級的方法來遮蔽圖像數據,但最終不能不要讓那些想要破解的人保持它。

相關問題