首頁 >資料庫 >mysql教程 >如何安全地限制 PHP 檔案上傳中的檔案類型?

如何安全地限制 PHP 檔案上傳中的檔案類型?

DDD
DDD原創
2024-11-03 03:13:02483瀏覽

How to Securely Restrict File Types in PHP File Uploads?

PHP 檔案上傳:限製檔案類型

處理檔案上傳時,驗證上傳檔案的類型和大小至關重要,以確保安全性和安全性。保持預期的功能。提供的程式碼旨在透過檢查檔案副檔名、類型和大小來實現此目的。但是,它有一些問題。

原始程式碼的問題:

  • 不強制執行檔案類型;它允許未經授權的副檔名的檔案(例如 TXT)。
  • 無法正確檢查檔案大小。

解決方案:

為了解決這些問題,我們可以利用 mime 類型進行文件驗證並單獨檢查大小限制。

更新的程式碼:

<code class="php">function allowed_file() {
  // Allowed mime types
  $allowed = array('application/doc', 'application/pdf', 'another/type');

  // Validate file type using mime type
  if (in_array($_FILES['resume']['type'], $allowed) && in_array($_FILES['reference']['type'], $allowed)) {

    // Validate file size
    if ($_FILES["resume"]["size"] < 400000 && $_FILES["reference"]["size"] < 400000) {

      // Files are allowed; proceed with upload process...
    }
  }
}</code>

說明:

  • 我們定義一個允許的mimeme 。
  • 對於每個上傳的文件,我們檢查其 mime 類型是否在允許的陣列中。
  • 驗證檔案類型後,我們會執行大小檢查,以確保它們低於指定的限制。
  • 如果所有驗證都通過,我們就可以繼續文件上傳過程,例如移動到所需的目的地。

以上是如何安全地限制 PHP 檔案上傳中的檔案類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn