2011-08-28 29 views
1

我發現這個鏈接在線,這是一個安全的方式來創建一個ajax上傳表單?

http://www.ultramegatech.com/blog/2010/10/create-an-upload-progress-bar-with-php-and-jquery/

它是安全的安裝此PHP空間/插件,然後使用它?

也許有人對文件上傳系統有另一個建議?

我有一個標題,描述和圖像輸入的表單。提交後,應該上傳顯示上傳過程的圖像,然後在成功上傳後將數據輸入到MySQL表中。

在Mac上,您可以將文件拖放到文件輸入中,因此我想保留原來的外觀和感覺。

回答

4

當然它是安全的。

重要的部分不是上傳器的「接口」,它可以是Ajax,RAW HTML或您可能使用的任何客戶端;這是PHP處理腳本,它將接收上傳的文件並對其進行處理。

  • 檢查文件大小
  • 檢查的文件擴展名
  • 檢查,如果文件是重複
  • 檢查正確的權限,這樣:你可能想在你的「upload.php的」處理程序來考慮

    事服務器可以寫/讀

  • 檢查用戶是否濫用上傳系統(cookie)
  • 等。
  • 畢竟,它保存爲進一步的需求;)

好運。

+1

我同意。你應該關心服務器端的安全性(PHP代碼)。您的JavaScript應該只能正常工作。 –

+0

+1用於定義需要保護的內容以及可以規避的內容 – sousdev

3

以下是upload.php程序的源代碼:

<?php 
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) { 
    $path = './uploads/' . basename($_FILES['file']['name']); 
    move_uploaded_file($_FILES['file']['tmp_name'], $path); 
} 

正如你所看到的,它是沒有做任何類型的檢查。如果您上傳任何PHP shell腳本,它將毫無問題地上傳它。所以它不安全。以下鏈接可能會對您有所幫助:PHP image upload security check list

+0

哇,那是一些最初的壞代碼。如果我只是命名我的文件'../../ index.php'或其他什麼,我可以接管你的整個機器?真棒。 – Malvolio

相關問題