2010-06-25 101 views
4

我需要保護一個文件夾。網站是用PHP完成的。有一個像PDF,DOC等文件的管理區域...所以;我無法用會話變量保護這些文件。有沒有在PHP中保護文件夾的方法?PHP保護文件夾

謝謝

+5

雖然這並不能回答你的問題,但是你知道你可以將文件移動到web-root之外,並讓它們仍然可以被服務器和腳本訪問嗎?如果你有一個授權機制,那麼他們應該是安全的,如果不是更安全的話,那麼比在php保護的目錄中更安全。 – 2010-06-25 17:49:05

+0

我同意@ ricebowl ...如果這些文件不是直接通過網站提供的,將它們放在網頁根目錄之外並通過腳本訪問它們是有意義的。 – 2010-06-25 18:18:56

回答

1

你可以把你的文件的可視區域(之前的public_html)的後面,並用會話保護的下載頁面,下載文件。

<?php 
if(session_is_loggedin()){ 
    readfile($_GET['file']); 

} 
?> 

顯然,需要做一些額外的更改,但這是您要求的部分。

4

你不能僅使用PHP保護它,但是在.htaccess文件的幫助下,這是可能的。

創建要保護的目錄.htaccess文件,並把這個在它:

Deny from all 

然後,要創建一個PHP腳本訪問這些文件,你可以這樣做:

// Add user authentication code 
$name = 'protected_dir/file.pdf'; 
$fp = fopen($name, 'rb'); 
header("Content-Type: application/pdf"); 
header("Content-Length: " . filesize($name)); 
fpassthru($fp); 
exit;