2014-09-27 55 views
0

我有一個PHP網站,我想確保只有登錄用戶可以訪問某些數據,並且用戶只能訪問有權訪問的數據。我不確定這是PHP還是Apache問題。假設服務器上存在文件夾「Images」。如果用戶沒有登錄,並且瀏覽器請求可以從文件夾映像,那麼重定向到另一個頁面會照顧它還是需要讓Apache以某種方式涉及Apache,以確保用戶絕對不能訪問這些文件是一個標識用戶的PHP會話?文件和文件夾訪問管理和安全(PHP/Apache)

+0

根據文件的類型和大小,一個簡單(和非高性能)的方式將服務器通過PHP的所有文件。將文件夾移動到非apache可訪問的文件夾並執行'if($ loggedin){header('Content-type:image/jpeg'); echo file_get_contents('/ private/file.jpg'); }' – tillz 2014-09-27 19:13:24

回答

1

使用PHP來驗證用戶,並使用.htaccess文件拒絕任何訪問不是從PHP發送的目錄。但是,如果您使用.htaccess方法,則必須使用php獲取圖像,但無法通過html或javascript訪問該圖像。 把圖像文件夾中的.htaccess文件:

deny from all 

隨着該.htaccess文件內寫入。

然後只有php可以訪問文件夾內的文件。

+0

這似乎是要走的路。現在我只需要學習如何使用PHP來提供文件。 – goodbyeworld 2014-09-27 19:57:24

0

除非瀏覽器具有特定的cookie,否則整個目錄都可以禁用。修改.htaccess文件以期望目錄包括:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_COOKIE} !CookieName=Value [NC] 
RewriteRule .* http://www.example.com/members/login.php [L] 

你必須改變三樣東西:

  1. CookieName應該有你想要的名字。
  2. Value落後於CookieName您可以要求cookie具有特定的值。
  3. 當然還有URL。

現在只有在瀏覽器中存在正確的cookie時纔會授予訪問權限。當然,只有可以登錄的用戶才能擁有這個cookie。我假設你知道如何製作這樣的曲奇?提示:讓Cookie合理快速過期。

+0

值必須是靜態的嗎?因爲如果某人的cookie被劫持,那麼黑客就可以訪問所有的圖像。我並不試圖否定。我只是好奇,因爲我不知道你能做到這一點,並想要衡量它對我自己的可用性。 – 2014-09-27 19:34:01

+0

是的,沒有。值顯然是靜態的,除非你寫了一個帶有新值的新的'.htaccess'文件。例如,您可以編寫一個cron作業,每天在凌晨03:00更改該值。但是,正確的假設是,正確的訪問和知識總是可以被破解的。如果您需要絕對保護,請使用通過PHP傳遞所有內容的方法。 – 2014-09-27 22:03:19

相關問題