Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310

    controllo estensione file nel momento dell'upload

    finchè inserivo immagini, facendo presto a controllare

    Codice PHP:
    $allowed_types = array("image/gif","image/pjpeg","image/jpeg");
    if(!
    in_array($_FILES["upfile"]["type"][$Indice],$allowed_types)) 
    ma ora sto inserendo anche documenti .pdf, .doc e anche immagini

    come devo impostare il mio array?

    Codice PHP:
    $allowed_types = array(file/doc","file/pdf","image/jpeg");
    if(!in_array(
    $_FILES["upfile"]["type"][$Indice],$allowed_types)) 
    cosi? :master:
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  2. #2
    Una lista di mimetype la puoi trovare al seguente indirizzo:

    http://www.asciitable.it/mimetypes.asp

    Comunque ti suggerisco di aggiungere un controllo anche sull'estensione, altrimenti lasci il tuo sito aperto ad attacchi.

  3. #3
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da filippo.toso
    Comunque ti suggerisco di aggiungere un controllo anche sull'estensione, altrimenti lasci il tuo sito aperto ad attacchi.
    era esattamente quello che volevo fare

    esempio?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  4. #4
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    up
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  5. #5
    Originariamente inviato da filippo.toso
    Una lista di mimetype la puoi trovare al seguente indirizzo:

    http://www.asciitable.it/mimetypes.asp

    Comunque ti suggerisco di aggiungere un controllo anche sull'estensione, altrimenti lasci il tuo sito aperto ad attacchi.

    AFAIK il controllo sul mime type è + affidabile
    rispetto all'estensione del file.


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  6. #6
    Originariamente inviato da whisher
    AFAIK il controllo sul mime type è + affidabile
    rispetto all'estensione del file.


    Ma se modifichi la richiesta HTTP e setti il mimetype in image/jpg e usi come estensione php ti uppa un bello script php funzionante , quindi controlla l'estensione.

    Per l'estensione puoi fare
    Codice PHP:
    <?php
    $parti 
    explode"."$nome_file );
    $estensione $particount$parti ) - ];
    if( 
    $estensione == ... )
    ?>

  7. #7
    Originariamente inviato da Cor3
    Ma se modifichi la richiesta HTTP e setti il mimetype in image/jpg e usi come estensione php ti uppa un bello script php funzionante , quindi controlla l'estensione.

    Per l'estensione puoi fare
    Codice PHP:
    <?php
    $parti 
    explode"."$nome_file );
    $estensione $particount$parti ) - ];
    if( 
    $estensione == ... )
    ?>

    Lo stesso si può dire della tua soluzione
    (nel caso di immagini con getimagesize
    si potrebbe stare sicuri perchè in caso
    di file invalido la funzione genera un warning
    o un notice dalla versione 5.2.3)
    diciamo che per stare sicuri è meglio
    fare tutti e due i controlli anzi dato che ci
    siamo aggiungiamo anche controllare il
    - referrer
    - rinominare il file (nel tuo script se un file pippo.php.gif .......)
    - e cambiare i permessi

    se hai altro aggiungi ...


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Concordo pienamente , alla fine conviene fare tutti i controlli possibili
    anche se con qualche piccolo accorgimento non vedo come possa essere bypassabile
    Codice PHP:
    <?php
    $parti 
    explode"."$nome_file );
    $estensione $particount$parti ) - ];
    $nome_sicuro str_replace"."""$nome_file );
    if( 
    $estensione == consentita )
    fopen$nome_sicuro "." $estensione"w+" );
    ?>

  9. #9
    Originariamente inviato da Cor3
    Concordo pienamente , alla fine conviene fare tutti i controlli possibili
    anche se con qualche piccolo accorgimento non vedo come possa essere bypassabile
    Codice PHP:
    <?php
    $parti 
    explode"."$nome_file );
    $estensione $particount$parti ) - ];
    $nome_sicuro str_replace"."""$nome_file );
    if( 
    $estensione == consentita )
    fopen$nome_sicuro "." $estensione"w+" );
    ?>
    fopen
    se metto un file del genere pippo.ripippo.hai.jpg
    che succede

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  10. #10
    Ciao C0r3

    Modifica explode in questo modo:
    Codice PHP:
    $parti explode"."$nome_file); 
    e in $parti[0] hai il nome del file
    in $parti[1] l'estensione

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.