🛡️ Controlli di Sicurezza per l’Upload di File

Caricare file sul server è una funzionalità molto utile… ma anche molto delicata.

👉 Senza controlli adeguati, un utente potrebbe caricare file dannosi (script, virus, ecc.).

Per questo motivo è fondamentale applicare controlli di sicurezza rigorosi.


⚠ I rischi principali

Se non proteggi l’upload, potresti avere:


🧠 Regola base

NON fidarti mai del file caricato dall’utente


🔍 1. Controllare l’estensione

<?php

$nome = $_FILES["file"]["name"];
$estensione = strtolower(pathinfo($nome, PATHINFO_EXTENSION));

if($estensione == "jpg" || $estensione == "png"){
    echo "Estensione valida ✅";
}else{
    echo "Estensione non valida ❌";
}
?>

🔒 2. Controllare il tipo MIME (più sicuro)

<?php

$tipo = mime_content_type($_FILES["file"]["tmp_name"]);

if($tipo == "image/jpeg" || $tipo == "image/png"){
    echo "Tipo valido ✅";
}else{
    echo "Tipo non valido ❌";
}
?>

📏 3. Limitare la dimensione

<?php

if($_FILES["file"]["size"] > 2000000){
    echo "File troppo grande ❌";
}
?>

👉 esempio: max 2MB


🔤 4. Rinominare il file

❗ Non usare mai il nome originale!

<?php

$nuovo_nome = uniqid() . "." . $estensione;

?>

👉 evita:


📁 5. Usare una cartella sicura

uploads/

Consigli:


🚫 6. Bloccare file pericolosi

Mai permettere upload di:


🧪 Esempio completo sicuro

<?php

if(isset($_FILES["file"])){

    $nome = $_FILES["file"]["name"];
    $tmp = $_FILES["file"]["tmp_name"];
    $size = $_FILES["file"]["size"];

    $estensione = strtolower(pathinfo($nome, PATHINFO_EXTENSION));
    $tipo = mime_content_type($tmp);

    if(($estensione == "jpg" || $estensione == "png") &&
       ($tipo == "image/jpeg" || $tipo == "image/png")){

        if($size < 2000000){

            $nuovo_nome = uniqid() . "." . $estensione;
         move_uploaded_file($tmp, "uploads/" . $nuovo_nome);
         echo "Upload sicuro completato 🔐";
       }else{
            echo "File troppo grande ❌";
        }
   }else{
        echo "File non valido ❌";
    }
}
?>

🔐 Altri consigli importanti


🎯 Riassunto


📚 Conclusione

La sicurezza nell’upload dei file è fondamentale per proteggere il tuo sito e il tuo server.

👉 Con questi controlli hai già una base solida e professionale 👍


🎉 Complimenti! Hai completato anche il capitolo Caricamento file!