2012-03-06 46 views
0

基本上,除了圖像之外,Apache目錄內的所有文件都不可訪問。這些圖像應該可以訪問,但只有通過網站加載才能訪問。 如果我設置基於引用的Apache規則很容易通過:http://www.mustap.com/phpzone_post_62_how-to-bypass-the-referer-se 當然這不是正確的選擇。Apache目錄和圖像的安全

我的Apache的conf文件:

<Directory /var/www/path> 
    Order allow,deny 
    Deny from all 
    Options -Indexes 
    # Check against the referer, first level check 
    SetEnvIf Referer domain1\.com domain1 
    SetEnvIf Referer domain1\.com domain2 
    <FilesMatch \.(jpg|jpeg|gif|png)$> 
     Order deny,allow 
     Deny from all 
     Allow from env=domain1 
     Allow from env=domain2 
    </FilesMatch> 
</Directory> 

我怎樣才能解決這個而不會使圖像在DB?

感謝

回答

2

一種方式肯定知道是貫穿其採用類似readfile()檢查請求的圖像,然後輸出一個PHP腳本的所有圖片。

例如:site.com/image.php?name=logo.jpg

該腳本可以檢查用戶是否在您的網站的會話,如果他們不那麼就意味着他們正在請求圖像不首先查看網站(除非Cookie被禁用)。

這會增加加載時間,所以您必須考慮實施的成本/收益。

+2

要小心:site.com/image.php?name=../../../etc/passwd;) – ZiTAL 2012-03-06 09:57:18

+0

謝謝!我也發現這個鏈接,它可以是有用的: http://michael.theirwinfamily.net/articles/csshtml/protecting-images-using-php-and-htaccess – Daviddd 2012-03-06 13:16:29