2011-10-26 42 views
1

我和朋友正在構建允許用戶上傳圖片的網站。我們已經完成了這一切,但我們想知道如何阻止公衆能夠訪問服務器上的文件,但允許成員訪問它們。有沒有一種Apache mod可以讓我們做到這一點,並將其與PHP腳本鏈接,以檢查用戶是否已登錄?如何使用Apache/PHP保護未登錄用戶的目錄

+0

可以使用'readfile()' - 包裝器腳本下載鏈接,或使用會話ID設置臨時文件以通過RewriteCond進行探測。 – mario

+0

[PHP保護文件夾]的可能重複(http://stackoverflow.com/questions/3120174/php-protect-a-folder) – mario

+0

您也可以使用.htaccess文件來保護文件夾 –

回答

3

是的,有一個可以用於認證的apache模塊:mod_auth

它支持多個後端,所以你可以讓你的應用程序與它共享憑據。

Apache本身也可以在身份驗證時擴展,還有其他支持mysql數據庫的模塊,它被稱爲mod_auth_mysql,其中存在多個變體。對於Apache 2.2,更好的選擇可能是mod_authn_dbd,因爲它爲多種風格的SQL數據庫提供了一個通用接口。以及支持ldap:mod_authnz_ldap

另一種替代方法是使用PHP進行身份驗證,然後命令服務器提供該文件。這通常被稱爲或mod_xsendfile,這是第三方模塊。

如果你正在尋找一個PHP的解決方案,那麼談論它的一個問題是How to password protect files (images, video, zip) dynamically from public and allow access to members only?