


Bagaimanakah Saya Boleh Menyahzip Fail dengan Selamat dalam PHP Menggunakan ZipArchive?
Dec 06, 2024 pm 05:36 PMMenyahzip Fail dengan PHP: Pendekatan Segura
Menyahzip fail ialah tugas biasa dalam pembangunan web. Semasa melaksanakan perintah sistem('unzip File.zip') secara langsung mungkin berfungsi, menggunakan parameter URL untuk menentukan nama fail boleh menjadi mencabar.
Perangkap dengan Menggunakan Parameter URL
Isu dalam kod yang disediakan timbul apabila menggunakan $master.zip dalam perintah system('unzip $master.zip'). Pembolehubah dalam PHP tidak diinterpolasi dalam rentetan yang disertakan dalam petikan tunggal ('). Oleh itu, arahan akan cuba untuk melaksanakan unzip $master.zip, yang bukan nama fail yang dimaksudkan.
Penyelesaian yang Selamat dan Cekap
Untuk menyelesaikan isu ini, PHP sambungan terbina dalam untuk mengendalikan fail termampat harus digunakan. Satu sambungan sedemikian ialah ZipArchive. Berikut ialah kod yang disemak:
<?php // Get the filename from the URL parameter $filename = $_GET["master"]; // Instantiate the ZipArchive object $zip = new ZipArchive(); // Open the zip file $res = $zip->open($filename); // Check if the zip file was opened successfully if ($res === TRUE) { // Extract the contents of the zip file to the current directory $zip->extractTo('.'); // Close the zip file $zip->close(); echo "$filename extracted successfully."; } else { echo "Could not open $filename."; } ?>
Pertimbangan Tambahan
Apabila menerima input pengguna melalui pembolehubah $_GET, adalah penting untuk membersihkan input untuk mengelakkan kemungkinan serangan berniat jahat. Sentiasa sahkan dan tapis data yang diserahkan pengguna sebelum menggunakannya dalam kod PHP.
Mengekstrak ke Direktori yang Sama dengan Fail Zip
Jika lokasi pengekstrakan yang diingini adalah sama direktori di mana fail zip berada, tentukan laluan mutlak ke fail:
// Get the absolute path to the zip file $path = pathinfo(realpath($filename), PATHINFO_DIRNAME); // Extract the zip file to the determined path $zip->extractTo($path);
Dengan menggunakan teknik ini, anda boleh menyahzip fail dengan selamat dan cekap menggunakan PHP. Ingat untuk sentiasa mengutamakan pengesahan input dan langkah keselamatan apabila bekerja dengan data yang diserahkan pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahzip Fail dengan Selamat dalam PHP Menggunakan ZipArchive?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

TosecurelyhandleAuthenticationandauthorizationInphp, ikuti: 1.alwayshashpasswordswithpassword_hash () andverifyUsingPassword_verify (), usePePreparedStatementStopreventsqlInjection, andStoreUserDatain $ _SessionAsLogin.2.implescureRoleRoleRoleRoleRole

Tostaycurrentwithphpdevelopmentsandbestpractices, followeyNewsssourcesLikePhp.netandphpweekly, engageWithCommunitiesonforumsandconference, keeptoolingupdatedandgraduallyAdoptNewFeatures, dan readribcoursourcourceSource

Phpbecamepopularforwebdevelopmentduetoitseaseoflearning, seamlessintegrationwithhtml, widespreadhostingsupport, andalargeecosystemincludingframeworkslikelaravelandcmsplatformsLikeWordPress.itexcelsinhandessubmissions

TosetTheRightTimeZoneinPhp, USEDATE_DEFAULT_TIMEZONE_SET () functionAtthestArtAfyourscriptwithavalididentifiersuchas'america/new_york'.1.usedate_default_timeSet ()

Kaedah memasang PHP berbeza dari sistem operasi ke sistem operasi. Berikut adalah langkah -langkah tertentu: 1. Pengguna Windows boleh menggunakan XAMPP untuk memasang pakej atau mengkonfigurasi secara manualnya, muat turun XAMPP dan pasangnya, pilih komponen PHP atau tambahkan PHP ke pembolehubah persekitaran; 2. Pengguna MacOS boleh memasang PHP melalui homebrew, jalankan arahan yang sepadan untuk memasang dan mengkonfigurasi pelayan Apache; 3. Pengguna Linux (Ubuntu/Debian) boleh menggunakan Pengurus Pakej APT untuk mengemas kini sumber dan memasang PHP dan sambungan biasa, dan mengesahkan sama ada pemasangan berjaya dengan membuat fail ujian.

TOVALIDATEUSERIputInphp, UsEbuilt-InvalidationFunctionsLikeFilter_var () danFilter_Input (), applyRegularExpressionsforcustomformatssuchasususerorphonenumbers, checkdatatypesfornumericressplimeSpriceSprice, setLengthacheAngeAgeorpriceSprice, setLengthacheArpesenprice,

Untuk memusnahkan sesi sepenuhnya di PHP, anda mesti menghubungi session_start () terlebih dahulu untuk memulakan sesi, dan kemudian hubungi session_destroy () untuk memadam semua data sesi. 1. 2. Kemudian hubungi session_destroy () untuk membersihkan data sesi; 3. Pilihan tetapi disyorkan: Arahan $ _Session secara manual untuk membersihkan pembolehubah global; 4. Pada masa yang sama, padamkan cookies sesi untuk menghalang pengguna daripada mengekalkan keadaan sesi; 5. Akhirnya, perhatikan untuk mengalihkan pengguna selepas kemusnahan, dan elakkan menggunakan semula pembolehubah sesi dengan segera, jika tidak sesi perlu dimulakan semula. Melakukan ini akan memastikan bahawa pengguna sepenuhnya keluar dari sistem tanpa meninggalkan sebarang maklumat sisa.

ThPhpFunctionserialize () andUnserialize () diselaraskanToConvertComplexDataStructructDestoresIntoStorasandabackagain.1.Serialize () C overtsdatalikeCarraysorObjectSrayStringContainingTyPeanStructureStructureStructureStructure.2.2Serialize ()
