2011-12-13 83 views
0

我必須在上傳到服務器之前檢查zip/rar文件的內容。檢查上傳前的文件內容

讓我來解釋一下這個場景。

有我的web項目2種類型的用戶:

1:普通註冊用戶 2:項目

任何註冊用戶都可以在我們的項目創建網頁的管理員,也是他們可以創建Themes對於頁面。

在這裏,我們其中一個人提出了一個功能,上傳Theme作爲主題包[壓縮在Zip/Rar文件]。

如果它是一個管理員,那麼它沒問題,沒有更多的安全限制。

但是我擔心普通註冊用戶的情況。

我的問題是:

假設一個註冊用戶上傳包含一些惡意文件[包括PHP文件]認爲可能會傷害系統中的主題包。 我知道在上傳後檢查內容是可行的,但如果在此之前使用該文件執行文件會發生什麼情況?

例如:上傳一個主題包的用戶:包含some PHP codes & other large files,首先我們的系統會提取主題包的內容:假設大文件的提取需要一些時間,並且較小的PHP文件已經被提取。用戶可以先運行PHP文件。

上面這個是我的noob soubt,其實我不知道其他方面。

請幫我弄清楚這個問題。

是否可以以安全的方式上傳ZIP文件?

回答

2

您將無法檢查此客戶端,除非您有某種插件(適用於所有瀏覽器)爲您執行檢查/上傳。你必須在服務器端處理這個。

此外,管理員可以像非管理員一樣輕鬆上傳病毒。有些用戶甚至不知道他們的機器比棚戶區妓院有更多的病毒。

編輯:另外,用戶如何在您檢查它之前執行它們的PHP文件,除非運行該php文件?無論如何,這聽起來像是一場災難。所有這些都需要通過裂縫來解決,惡意用戶會破壞你的網站。允許普通人上傳可執行腳本到你的服務器正在招致嚴重的麻煩。

+0

那麼,有沒有什麼辦法可以做到這一點??管理員是項目的高級用戶,他們可以直接訪問服務器,所以我不在乎管理員。 – Red

+1

@DileepDil,你要求用戶信任他們的機器上傳文件之前打開一個文件。出於安全原因,除非你安裝了一個插件(我相信用戶不會喜歡),否則這種情況不會發生。正如Nameless所說,接受上傳,檢查它,然後刪除/移動它。 –

+0

感謝您的澄清。我明白,但是當用戶/程序在上傳後立即執行文件會發生什麼? – Red

2

將其解包到無法通過網絡訪問的目錄中,檢查並返回到網絡文件夾,它應該位於該目錄中。

假設您的網站位於/ var/www/website目錄中,並且用戶內容轉到/ var/www/website/user並可通過www.website訪問。COM /用戶/:

創建臨時目錄/ tmp中解壓那裏,檢查,移動到/ var /網絡/網站/用戶

如果您沒有訪問到/ tmp,你可以創建/ VAR/www/website/tmp並禁止使用您的服務器設置訪問它

+0

然後如何訪問普通用戶?主題包包含一個HTML文件,文件夾,圖像等等,它將用於爲頁面創建主題。我有一個HTML編輯器來創建主題,所以用戶需要把正確的路徑圖像在那裏。如果我上面這個webroot如何是可能的?如果有可能,那麼其​​他文件也是可能的。 – Red

+2

@DileepDil再次閱讀:檢查惡意內容後,將解包的文件移動到應該在的位置。 – Nameless

+0

Okkey,謝謝。讓我檢查一下。 – Red

0

您可以創建一個用於放置zip文件和解壓縮的文件夾。

並禁用php執行該文件夾。那可以解決你的問題