2015-04-21 43 views
0

我想阻止匿名用戶直接訪問JPG文件(但允許縮略圖)。我做了的.htaccess來保護我的JPG文件:如果用戶登錄,返回HTML圖像

Order deny,allow 
Deny from all 

<FilesMatch "resize\.jpg|0\.jpg"> 
Allow from all 
</FilesMatch> 

,簡單地做到這一點:

if(isLogged()) 
    { 
    $imageName = $_GET['image']; 
    $imageFile = "/pathToFile/{$imageName}.jpg"; 

    if(file_exists($imageFile)) { 
     header('Content-Type: image/jpeg'); 
     readfile($imageFile); 
     exit; 
    } 
    } 

問題是,看如果用戶登錄,我需要做的session_start()這阻止了我正確設置響應的標題。但重點是在返回文件之前檢查用戶是否已登錄。任何想法?

+1

您的代碼中包含http://en.wikipedia.org/wiki/File_inclusion_vulnerability。 – Frank

回答

0

找到它。必須在session_start()之前調用ob_start(),如果要發送圖片,請使用ob_clean()。