Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Panduan keselamatan muat naik fail PHP: Cara menggunakan tatasusunan $_FILES untuk mendapatkan maklumat fail yang dimuat naik

Panduan keselamatan muat naik fail PHP: Cara menggunakan tatasusunan $_FILES untuk mendapatkan maklumat fail yang dimuat naik

WBOY
WBOYasal
2023-07-30 18:53:361122semak imbas

Panduan Keselamatan Muat Naik Fail PHP: Cara menggunakan tatasusunan $_FILES untuk mendapatkan maklumat fail yang dimuat naik

Abstrak:
Muat naik fail adalah salah satu fungsi biasa dalam pembangunan web. Walau bagaimanapun, pelaksanaan muat naik fail yang salah boleh membawa kepada kelemahan keselamatan, membawa potensi risiko kepada aplikasi. Artikel ini akan memperkenalkan cara menggunakan tatasusunan $_FILES PHP untuk mendapatkan maklumat fail yang dimuat naik dengan selamat dan menggabungkannya dengan beberapa contoh kod untuk membantu pembaca memahami dengan lebih baik.

  1. Tetapkan had muat naik fail yang sesuai
    Dalam PHP, kita boleh menggunakan fail php.ini untuk menetapkan had muat naik fail. Berikut ialah beberapa pilihan tetapan biasa:

    ; 允许上传的文件最大大小
    upload_max_filesize = 5M
    ; 允许同时上传的文件数量
    max_file_uploads = 20
    ; 允许上传的文件类型
    allowed_file_types = image/jpeg, image/png

    Melalui tetapan ini, kami boleh mengawal saiz, kuantiti dan jenis fail yang dimuat naik, dengan itu berkesan menghalang beberapa kemungkinan isu keselamatan.

  2. Gunakan tatasusunan $_FILES untuk mendapatkan maklumat fail yang dimuat naik
    Dalam PHP, kami boleh menggunakan tatasusunan $_FILES untuk mendapatkan maklumat tentang fail yang dimuat naik. Tatasusunan $_FILES ialah tatasusunan bersekutu, nama kuncinya ialah nama medan input dalam borang muat naik fail dan nilai kunci ialah tatasusunan yang mengandungi maklumat tentang fail yang dimuat naik.

Berikut ialah contoh penggunaan asas:

<form action="upload.php" method="POST" enctype="multipart/form-data">
  <input type="file" name="file" />
  <input type="submit" value="上传" />
</form>

Dalam skrip PHP untuk memuat naik fail, kita boleh mendapatkan maklumat fail yang dimuat naik seperti ini:

$file = $_FILES['file'];
echo "文件名:" . $file['name'] . "<br />";
echo "文件类型:" . $file['type'] . "<br />";
echo "文件大小:" . $file['size'] . "字节 <br />";
echo "临时文件名:" . $file['tmp_name'] . "<br />";

Melalui tatasusunan $_FILES, kita boleh mendapatkan nama dengan mudah fail yang dimuat naik, Maklumat seperti jenis, saiz, dan nama fail sementara.

  1. Semakan Keselamatan Fail Yang Dimuat Naik
    Selain mendapatkan maklumat tentang fail yang dimuat naik, kami juga perlu melakukan beberapa pemeriksaan keselamatan tambahan. Berikut adalah beberapa kaedah semakan keselamatan biasa:

3.1 Semak jenis MIME fail yang dimuat naik

$allowed_mime_types = array('image/jpeg', 'image/png');
if (!in_array($file['type'], $allowed_mime_types)) {
  die("禁止上传该类型的文件");
}

Dengan menyemak jenis MIME fail yang dimuat naik, kami boleh menghalang pengguna daripada memuat naik jenis fail haram.

3.2 Semak sambungan fail

$allowed_extensions = array('jpg', 'png');
$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
if (!in_array($extension, $allowed_extensions)) {
  die("禁止上传该扩展名的文件");
}

Dengan menyemak sambungan fail, kami boleh memastikan kesahihan fail yang dimuat naik.

3.3 Alihkan dan muat naik fail ke direktori yang ditentukan

$target_directory = "uploads/";
$target_path = $target_directory . $file['name'];
if (move_uploaded_file($file['tmp_name'], $target_path)) {
  echo "文件上传成功";
} else {
  echo "文件上传失败";
}

Semasa mengalih dan memuat naik fail ke direktori yang ditentukan, kami juga mesti memastikan direktori sasaran mempunyai tetapan kebenaran yang sesuai untuk menghalang pengguna berniat jahat daripada memuat naik fail yang mengandungi kod hasad.

Kesimpulan:
Dengan menggunakan tatasusunan $_FILES, digabungkan dengan semakan keselamatan yang sesuai, kami boleh mendapatkan maklumat yang berkaitan dengan selamat tentang fail yang dimuat naik, dengan berkesan mencegah risiko keselamatan yang tidak diingini. Sama ada anda seorang pembangun baharu atau berpengalaman, anda harus mengingati keselamatan muat naik fail semasa pembangunan dan mengikut garis panduan amalan terbaik untuk melindungi keselamatan aplikasi dan data pengguna anda.

Rujukan:

  • Dokumentasi rasmi PHP: http://php.net/manual/zh/reserved.variables.files.php

Atas ialah kandungan terperinci Panduan keselamatan muat naik fail PHP: Cara menggunakan tatasusunan $_FILES untuk mendapatkan maklumat fail yang dimuat naik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn