首頁 >後端開發 >php教程 >如何建立安全的圖像上傳腳本?

如何建立安全的圖像上傳腳本?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-08 17:39:12517瀏覽

How Can I Create a Secure Image Upload Script?

完整的安全圖像上傳腳本

簡介

確保安全的圖像上傳對於保護您的伺服器和資料至關重要。該腳本概述了實現最大圖像上傳安全性的綜合方法。

第1 步:檔案類型驗證

HTML 表單:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" name="upload" value="Upload">
</form>

PHP:

$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['image']['type'], $allowedTypes)) {
    echo "Invalid file type";
    exit;
}
PHP:

第2 步:影像使用GD庫進行內容驗證

$verifyimg = getimagesize($_FILES['image']['tmp_name']);
if ($verifyimg['mime'] != $_FILES['image']['type']) {
    echo "Invalid image content";
    exit;
}

步驟3:受限上傳目錄

將上傳的影像儲存在可存取的文檔根目錄之外或受保護的目錄中:

/uploads

步驟4:對訪客隱藏文件資訊

上傳圖片重新命名、更改擴充名,並儲存原始資訊在資料庫中:

PHP:

$uploadfile = tempnam_sfx($uploaddir, ".tmp");
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
    // Database logic to store original name and MIME type
}

第5 步驟:安全影像擷取

PHP:

$id = 1; // For example
$sql = "SELECT name, original_name, mime_type FROM uploads WHERE>

第 6步:附加功能

最大檔案大小驗證:

if ($_FILES['image']['size'] > 1000000) {
    echo "File size too large";
    exit;
}

ImageUpload 類別:

ImageUpload 類別:

開源可用性:

ImageUpload 類別現已在 GitHub 上提供,以供社群貢獻和改進。

以上是如何建立安全的圖像上傳腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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