Rumah pembangunan bahagian belakang tutorial php Penapisan data PHP: menghalang muat naik fail berniat jahat

Penapisan data PHP: menghalang muat naik fail berniat jahat

Jul 29, 2023 pm 04:02 PM
Penapisan data penapis php Fail berniat jahat

Penapisan Data PHP: Mencegah Muat Naik Fail Berniat jahat

Dalam beberapa tahun kebelakangan ini, dengan perkembangan teknologi rangkaian, muat naik fail berniat jahat telah menjadi salah satu ancaman utama kepada keselamatan Internet. Muat naik fail berniat jahat bermakna penyerang memintas sekatan muat naik fail tapak web dengan memuat naik fail haram, yang membawa kepada isu keselamatan seperti eksploitasi kerentanan dan suntikan kod berniat jahat. Untuk melindungi keselamatan tapak web, kami perlu menapis dan mengesahkan data dalam kod PHP untuk menghalang muat naik fail berniat jahat.

  1. Semakan Akhiran Fail
    Muat naik fail berniat jahat selalunya dihantar menyamar sebagai jenis fail biasa. Oleh itu, kami perlu menyemak akhiran fail yang dimuat naik dan hanya menerima jenis fail yang memenuhi keperluan. Berikut ialah kod contoh mudah:
$allowedExtensions = array('jpg', 'jpeg', 'png', 'gif'); // 允许上传的文件类型
$fileExtension = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION)); // 获取文件后缀

if (!in_array($fileExtension, $allowedExtensions)) {
    die('只允许上传图片文件');
}
Salin selepas log masuk
  1. Semakan jenis fail
    Selain menyemak akhiran fail, kami juga perlu mengesahkan jenis MIME fail untuk mengelakkan fail berniat jahat daripada disamarkan sebagai jenis fail yang sah. Anda boleh menggunakan fungsi mime_content_type() PHP untuk mendapatkan jenis MIME fail dan mengesahkannya. Berikut ialah contoh kod:
$allowedMimeTypes = array('image/jpeg', 'image/png', 'image/gif'); // 允许上传的MIME类型
$uploadedFile = $_FILES['file']['tmp_name']; // 获取上传的临时文件路径
$uploadedMimeType = mime_content_type($uploadedFile); // 获取上传文件的MIME类型

if (!in_array($uploadedMimeType, $allowedMimeTypes)) {
    die('只允许上传图片文件');
}
Salin selepas log masuk
  1. Semakan saiz fail
    Untuk mengelakkan muat naik fail besar daripada menduduki sumber pelayan atau lebar jalur rangkaian, kami perlu mengehadkan saiz fail yang dimuat naik. Anda boleh menggunakan $_FILES'file' dalam PHP untuk mendapatkan saiz fail dalam bait. Berikut ialah contoh kod:
$maxFileSize = 5 * 1024 * 1024; // 允许上传的最大文件大小(5MB)
$uploadedFileSize = $_FILES['file']['size']; // 获取上传文件的大小

if ($uploadedFileSize > $maxFileSize) {
    die('文件大小超过限制');
}
Salin selepas log masuk
  1. Anti-penduaan nama fail
    Untuk mengelakkan pertindihan nama fail yang dimuat naik oleh pengguna yang berbeza, kami boleh menamakan semula fail yang dimuat naik. Anda boleh menggunakan fungsi uniqid() PHP untuk menjana nama fail yang unik dan menggabungkannya dengan akhiran fail untuk membentuk nama fail baharu. Berikut ialah contoh kod:
$uploadedFileName = $_FILES['file']['name']; // 获取上传文件的原始文件名
$newFileName = uniqid() . '.' . $fileExtension; // 生成新的文件名

$uploadedFilePath = './uploads/' . $newFileName; // 设置上传文件保存的路径

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadedFilePath)) {
    echo '文件上传成功';
} else {
    echo '文件上传失败';
}
Salin selepas log masuk

Ringkasnya, dengan melakukan semakan akhiran, pengesahan jenis MIME, semakan saiz fail dan pencegahan nama fail pada fail yang dimuat naik, risiko muat naik fail berniat jahat dapat dicegah dengan berkesan. Sudah tentu, untuk memastikan keselamatan sistem, kami juga harus sentiasa mengemas kini dan menaik taraf perisian pelayan, membetulkan kelemahan yang diketahui tepat pada masanya, dan memastikan keselamatan data tapak web dan privasi pengguna.

Atas ialah kandungan terperinci Penapisan data PHP: menghalang muat naik fail berniat jahat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penapisan data PHP: cara mengendalikan dan mencegah input yang salah Penapisan data PHP: cara mengendalikan dan mencegah input yang salah Jul 29, 2023 am 10:03 AM

Penapisan data PHP: Cara mengendalikan dan mencegah input yang salah Dalam membangunkan aplikasi web, data input pengguna tidak boleh dipercayai, jadi penapisan dan pengesahan data adalah sangat penting. PHP menyediakan beberapa fungsi dan kaedah untuk membantu kami mengendalikan dan mencegah input yang salah Artikel ini akan membincangkan beberapa teknik penapisan data biasa dan menyediakan kod sampel. Penapisan rentetan Dalam input pengguna, kita sering menghadapi rentetan yang mengandungi teg HTML, aksara khas atau kod berniat jahat. Untuk mengelakkan kelemahan keselamatan dan serangan suntikan skrip

Ringkasan soalan lazim tentang mengimport data Excel ke dalam Mysql: Bagaimana untuk menangani data pendua semasa proses import? Ringkasan soalan lazim tentang mengimport data Excel ke dalam Mysql: Bagaimana untuk menangani data pendua semasa proses import? Sep 09, 2023 pm 04:22 PM

Ringkasan soalan lazim tentang mengimport data Excel ke dalam Mysql: Bagaimana untuk menangani data pendua semasa proses import? Dalam proses pemprosesan data, kita sering menghadapi keperluan untuk mengimport data Excel ke dalam pangkalan data Mysql. Walau bagaimanapun, disebabkan oleh jumlah data yang besar, adalah mudah untuk menduplikasi data, yang memerlukan kami mengendalikannya dengan sewajarnya semasa proses import. Dalam artikel ini, kami membincangkan cara mengendalikan data pendua semasa import dan menyediakan contoh kod yang sepadan. Sebelum melakukan pemprosesan data berulang, anda perlu memastikan bahawa terdapat yang unik

Bagaimana untuk menapis dan mencari data dalam React Query? Bagaimana untuk menapis dan mencari data dalam React Query? Sep 27, 2023 pm 05:05 PM

Bagaimana untuk melakukan penapisan dan carian data dalam ReactQuery? Dalam proses menggunakan ReactQuery untuk pengurusan data, kami sering menghadapi keperluan untuk menapis dan mencari data. Ciri ini boleh membantu kami mencari dan memaparkan data dalam keadaan tertentu dengan lebih mudah. Artikel ini akan memperkenalkan cara menggunakan fungsi penapisan dan carian dalam ReactQuery dan memberikan contoh kod khusus. ReactQuery ialah alat untuk menanyakan data dalam aplikasi React

Tutorial asas VUE3: menggunakan penapis untuk penapisan data Tutorial asas VUE3: menggunakan penapis untuk penapisan data Jun 15, 2023 pm 08:37 PM

VUE3 kini merupakan rangka kerja yang popular dalam pembangunan bahagian hadapan. Fungsi asas yang disediakannya boleh meningkatkan kecekapan pembangunan bahagian hadapan. Antaranya, penapis ialah alat yang sangat berguna dalam VUE3 Menggunakan penapis boleh menapis, menapis dan memproses data dengan mudah. Jadi apakah penapis? Ringkasnya, penapis ialah penapis dalam VUE3. Ia boleh digunakan untuk memproses data yang diberikan untuk membentangkan hasil yang lebih diingini dalam halaman. penapis adalah beberapa

Bagaimana untuk mengelakkan serangan XSS dalam pembangunan bahasa PHP? Bagaimana untuk mengelakkan serangan XSS dalam pembangunan bahasa PHP? Jun 10, 2023 pm 04:18 PM

Dengan populariti Internet, isu keselamatan laman web semakin mendapat perhatian. Antaranya, serangan XSS adalah salah satu ancaman keselamatan yang paling biasa dan berbahaya. Nama penuh XSS ialah Cross-sitescripting, yang diterjemahkan dalam bahasa Cina sebagai serangan skrip merentas tapak Ini bermakna penyerang sengaja memasukkan sekeping kod skrip berniat jahat ke dalam halaman web, sekali gus menjejaskan pengguna lain. Bahasa PHP ialah bahasa yang digunakan secara meluas dalam pembangunan web, jadi bagaimana untuk mengelakkan serangan XSS dalam pembangunan bahasa PHP? Artikel ini akan menghuraikan aspek berikut. 1. Pertanyaan berparameter

Petua penapisan data PHP: Cara menggunakan fungsi filter_var untuk mengesahkan input pengguna Petua penapisan data PHP: Cara menggunakan fungsi filter_var untuk mengesahkan input pengguna Jul 31, 2023 pm 08:05 PM

Kemahiran penapisan data PHP: Cara menggunakan fungsi filter_var untuk mengesahkan input pengguna Dalam pembangunan web, pengesahan dan penapisan data input pengguna adalah pautan yang sangat penting. Input hasad mungkin dieksploitasi oleh pengguna hasad untuk menyerang atau menjejaskan sistem. PHP menyediakan satu siri fungsi penapis untuk membantu kami memproses data input pengguna, yang paling biasa digunakan ialah fungsi filter_var. Fungsi filter_var ialah cara berasaskan penapis untuk mengesahkan input pengguna. Ia membolehkan kami menggunakan pelbagai penapis terbina dalam

Petua penapisan data PHP: Cara menggunakan fungsi filter_input untuk mengesahkan dan membersihkan input pengguna Petua penapisan data PHP: Cara menggunakan fungsi filter_input untuk mengesahkan dan membersihkan input pengguna Jul 31, 2023 pm 09:13 PM

Petua penapisan data PHP: Cara menggunakan fungsi filter_input untuk mengesahkan dan membersihkan input pengguna Apabila membangunkan aplikasi web, data yang dimasukkan pengguna tidak dapat dielakkan. Untuk memastikan keselamatan dan kesahihan data input, kami perlu mengesahkan dan membersihkan input pengguna. Dalam PHP, fungsi filter_input ialah alat yang sangat berguna yang boleh membantu kami menyelesaikan tugas ini. Artikel ini akan memperkenalkan cara menggunakan fungsi filter_input untuk mengesahkan dan membersihkan

Apakah beberapa contoh praktikal menggunakan ungkapan lambda C++ untuk penapisan dan transformasi data? Apakah beberapa contoh praktikal menggunakan ungkapan lambda C++ untuk penapisan dan transformasi data? Apr 18, 2024 am 09:15 AM

Dalam C++, ungkapan lambda boleh digunakan untuk menapis dan mengubah data dengan mudah. Sebagai contoh, anda boleh menggunakan ungkapan lambda untuk menapis elemen ganjil dalam bekas, mengubah elemen dalam bekas, menapis dan mengubah bekas bersekutu, menggunakan ungkapan lambda dalam algoritma dan lulus ungkapan lambda sebagai hujah fungsi. Kaedah ini boleh menjadikan tugas pemprosesan data lebih mudah dan lebih cekap.

See all articles