Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    mime type o estensione nell'upload

    ciao a tutti!
    Son sempre riuscito a fare gli upload in php, ma mi son sempre chiesto una cosa...
    che differenza c'è tra il fare il controllo del mime type o dell'estensione?
    grazie

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    la differenza e' che il controllo sul mime lo fanno solo i pivelli

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    tutto qua? ma se io li so fare tutte e due cosa mi conviene fare?
    per la sicurezza?

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Allora:
    Il controllo sul tipo di file caricato si fa per due motivi:
    a) per accettare solo file che ci si aspetta
    b) per non accettare file pericolosi

    Mettiamo che tu stai sviluppando un'applicazione dove gli utenti ti caricano archivi, e vuoi accettare solo zip/rar.
    Ora, se tu fai il controllo sul mime, quest'ultimo, essendo un dato inviato dal browser, e' facilmente modificabile. Quindi uno puo' tranquillamente caricarti un file qualcosa.php con il mime application/zip.
    Se tu salvi sto file sul disco del server, sei messo male: gli hai dato la possibilita' di chiamare tuosito.it/qualcosa.php con qualsiasi codice dentro.

    Se invece fai il controllo sull'estensione, anche se uno ti carica il file qualcosa.php cambiando estensione (quindi qualcosa.zip) non se ne fa niente del file caricato, perche' il server non interpreta il file come php.

    Poi naturalmente si possono fare dei controlli aggiuntivi in base ai file che ci si aspetta.

    In conclusione:
    Fare solo controllo sul mime - male
    Fare controllo sull'estensione - bene
    Fare controllo sul mime dopo aver fatto quello sull'estensione - inutile. E poi considera anche che a volte il mime non funziona come ti ci aspetti anche in casi "legali", ad esempio ie per le jpeg manda una mime tutta sua (image/pjpeg o qualcosa del genere, non ricordo piu' - il punto e' che manda un'altro mime rispetto agli altri browser)

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    aaaaaaaaaaaaaa... sei stato esaustivo... per curiosità e completezza quali altri tipi di controlli si possono fare per verificare se il file è davvero quello che vogliamo?

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Beh, come dicevo, dipende dal file che devi accettare. Se tu devi processare in qualche modo il file in input - farai nello stesso tempo anche dei controlli.

    Ad esempio: ti aspetti immagini in input, jpeg gif e png. Immagino vorrai forse ridimensionarle, oppure almeno vedere che dimensioni hanno, o recuperare qualche altra informazione. Allora chiamerai qualche funzione tipo imagecreatefromjpeg/gif/png oppure getimagesize. Se queste funzioni ti restituiranno false - significa che non ti hanno caricato un'immagine valida.

    Altro esempio: ti aspetti archivi zip. Chiamerai una funzione tipo zip_open (Se hai l'estensione installata) - se fallisce - non e' uno zip.

    Poi ovviamente ci sono casi quando non puoi fare controlli - tipo sui .doc se non sei su windows con le estensioni necessarie, o sui .pdf, oppure vuoi accettare qualsiasi estensione tranne php, o che ne so ancora - in questo caso te ne fai una ragione; ma almeno se fai il controllo primario sull'estensione come ho detto nell'altro post, resti sicuro che non ti bucano il sito (o almeno non da qua )

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    ok perfetto! grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.