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

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

Mary-Kate Olsen
發布: 2024-12-08 17:39:12
原創
518 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板