我打算使用.htaccess密碼保護一個php腳本的目錄我正在寫,因爲我不相信我的PHP技能來創建一個安全的登錄,但我發現你不能使用AuthUserFile的相對路徑,我不能一概而論。安全的目錄密碼保護沒有.htaccess
如果你可以指示我一個安全的PHP登錄腳本密碼保護一個目錄,我將非常感激。謝謝。
我打算使用.htaccess密碼保護一個php腳本的目錄我正在寫,因爲我不相信我的PHP技能來創建一個安全的登錄,但我發現你不能使用AuthUserFile的相對路徑,我不能一概而論。安全的目錄密碼保護沒有.htaccess
如果你可以指示我一個安全的PHP登錄腳本密碼保護一個目錄,我將非常感激。謝謝。
你可以做的一件事是將所有「祕密」文件保存在服務器webroot之外的目錄中。所有對這些文件的訪問都可以通過目錄中的一個PHP腳本進行路由。事情是這樣的:
http://www.example.com/protected-directory/access.php?file=/foo/document.doc
帶有目錄結構像這樣:
+--+ /server_root
|
+--+ /web_root
| |
| +--+ /protected-directory
| +-- access.php
| +-- access-denied.html
|
+--+ /protected_root
|
+--+ /foo
+-- document.doc
在你access.php
你會做這樣的事:
$file = $_REQUEST['file'];
if ($user->hasAccessTo($file)) {
readfile("/server_root/protected_root/$file");
} else {
readfile('access-denied.html');
}
現在,你必須小心你確保沒有人用你的file
-參數螺絲,並通過像"../../../etc/passwd"
。另外,您可能希望確保您在上面的示例中發送了正確的標題,爲了清晰起見,我省略了這些標題。
您可以使用AuthUserFile的絕對路徑,並安排將該文件放置在Web服務器無法訪問的位置。我已經做了很多年了。工作正常。
事情是,如果我分發這個,我不知道用戶將在哪裏放置腳本或他們在什麼操作系統。所以我不認爲我可以使用.htaccess? – tom 2009-05-31 20:44:46