2010-07-26 77 views
0

我正在創建一個基於PHP的Web應用程序,它需要使用簡單的身份驗證。該應用程序被安裝在Web服務器上,並且僅用作Web主機/服務器的所有者,因此只有一個用戶和密碼。我認爲創建複雜的登錄系統毫無意義。我只想創建一個GUI來生成.htaccess和.htpasswd文件以使用Apache的身份驗證。背後的想法是,它應該是簡單的,但它變成了比我預期的更多的工作。我意識到我必須將.htpasswd文件放在安全的地方,這意味着不在可訪問的Web目錄中。問題在於Web服務器通常具有不同的文件系統和權限,因此我可以將它放在哪裏安全?根據我所知,我能夠創建一個具有「740」權限的目錄,這應該是安全的。但是,這是不方便的。應用程序真的應該只限於一個文件夾,並且如果需要的話,應該只有一個.htpasswd文件。我很想將.htpasswd放在應用程序文件夾中,但我相信如果它被.htaccess文件保護,那麼我不會這樣做,當我嘗試它時似乎會導致服務器錯誤。如果有人有解決方案或更好的地方放置.htpasswd文件,將不勝感激!由PHP生成的.htpasswd放在哪裏?

+0

看看http://stackoverflow.com/questions/747096/ CakePHP的密碼保護與 - htaccess的 - 和htpasswd的-HOWTO。 – 2010-07-26 21:27:51

+0

我知道如何htaccess和htpasswd函數,以及如何創建它們。我只是在尋找可以放置跨平臺兼容和安全的.htpasswd文件的建議。 – 2010-07-26 21:36:24

回答

2

通過默認的Apache應配置不受此規則,以服務於任何.ht*文件:

<FilesMatch "^\.ht"> 
    Order allow,deny 
    Deny from all 
    Satisfy All 
</FilesMatch> 

所以它應該是安全的放置這個文件,無論你想。

如果您遇到服務器錯誤檢查mod_auth如果編譯/於Apache安裝啓用,如果您的虛擬主機/ Webroot公司擁有AllowOverride AuthConfig

+0

謝謝,我不知道這一點。然而關於這些錯誤,如果我將.htpasswd文件放在.htaccess保護的文件夾中,我只會收到它們。如果我啓用了'mod_auth'並設置了'AllowOverride AuthConfig',這是否允許我這樣做沒有錯誤? – 2010-07-26 21:53:22

+0

因此,當你將.htpasswd放在其他地方(並在htaccess中指定此路徑)時,它工作正常(您必須登錄才能查看頁面)? – 2010-07-26 22:15:31

+0

我還沒有測試過,但我認爲是這樣,但是如果我輸入了正確的用戶名和密碼,它就不會驗證並再次登錄。我的錯誤日誌有這樣的說: '原因:要求指令存在,沒有權威處理程序。「這是你所指的錯誤? – 2010-07-26 22:31:15