2010-09-13 69 views
0

我正在更新我父親的舊網站。 99%完成。他有一個在線學習課程,使用框架和1500 +圖片/頁面完成。我創建了一個基於cookie的登錄腳本,它使用mysql來跟蹤用戶和cookie的有效性。在每個「受保護的」頁面上出現我的腳本,cookie用一個特殊的「代碼」重寫,代碼也寫入我的mysql服務器。再次在頁面加載時,兩個代碼互相檢查,如果cookie無效,則將它們註銷。舊網站升級PHP身份驗證+ htacess

這工作得很好。問題在於,由於課程基於框架,我必須將所有腳本放在所有1500多個頁面上,而不僅僅是將所有框架合併爲一個頁面的10個「根」頁面。內容的肉由我的腳本保護,但人們可以通過網址訪問課程的部分內容(圖像,視頻)。

我在我的htacess文件中使用這樣的:

選項-Indexes

RewriteEngine敘述在 RewriteBase/ 的RewriteCond%{} HTTP_COOKIE = logincookiename [NC] 重寫規則* http://www.somesite [L]

阻止沒有cookie的人,但不檢查cookie是否「真實」。我怎樣才能讓這個更好?也許檢查是否存在一個只能在「完整」頁面加載時創建的php變量......真的不知道如何讓htacess讀取變量tho。 Thanx任何幫助。

+0

只是爲了澄清我原來的問題。我保護的頁面如下所示: 但有數百個(a1,b1,c1.htm等)可以保護這個頁面,但是很難將腳本複製到a1,b1 ,C1,所以他們不直接訪問 – scotty 2010-09-13 20:37:00

回答

0

在處理PHP內部事物的Apache方面,你可以做的事情不多。正如您所說的,您可以檢查是否存在cookie及其內容,但Apache無法使用該cookie來窺探PHP的會話文件。

如果您不想爲每個腳本手動添加適當的會話/權限處理代碼,您可以使用php "auto_prepend_file"功能來破解一些功能,這些功能會導致PHP在實際的內容之前加載指定的文件腳本。您可以將驗證檢查放在那裏,它會像您手動將代碼包含在每個文件中一樣。

至於圖像/視頻,那些你必須以其他方式保護的圖像/視頻。關於如何通過PHP安全地提供文件有很多討論。

+0

thx。我知道如何安全地爲他們服務,當我必須使用框架時,這只是一個主要的痛苦。猜猜我有很多複製和粘貼操作。 – scotty 2010-09-13 20:36:15