Visualizzazione risultati 1 fino 3 di 3

Discussione: File Upload esclusione estensioni.

  1. #1
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito File Upload esclusione estensioni.

    Salve ragazzi!
    Ho uno script in php per uploadare file sul server
    non ricordo dove lo presi, erano due file separati adesso io li ho inclusi in un unico file ed ho fatto tante altre modifiche per farlo a mio gradimento, se trovate errori please ditemelo.
    Inoltre mi chiedevo perchè hanno usato due file separati (config+index) quando tutto in uno sta alla grande...
    Ritenete sia stata una buona idea quella di unirli oppure ho fatto una c@xx@t@?
    Questo il link alla pagina "Link"
    Codice PHP:
    <?php

    // Password

    $psw="miapassword";

    // Nome della directory in cui verranno salvati i files (con lo slash "/")

    $d="dir/";

    // Dimensione massima del file in bytes (15000= 15KB)

    $s=15000;

    // Messaggio Trasferimento del file...

    $c="Creazione";

    // Messaggio di errore (Dimensione del file al di sopra del limite imposto)

    $err="ERROR - Dimensioni massime superate.";

    // Messaggio di errore (Non trovato, o Casella-Sfoglia-file vuota)

    $err1="EMPTY";

    // Messaggio di OK

    $ok="OK";

    // Messaggio torna-indietro

    $back="Invia un altro file";

    // Numero di uploads simulanei min=1, max=14

    $up=1;

    echo
    "<br>";
    if (
    $pp<>''){
    $p=base64_encode($pp);
    $pp='';
    }
    if (
    base64_decode($p)<>$psw){
    echo
    "<FORM METHOD=\"Post\" ACTION=\"$PHP_SELF\">\nInserire Password: <input type=password name=\"pp\"> <input type=submit value=\"Login\"></FORM>";
    } else {
    if (
    $d<>''){
    if (!(
    file_exists($d))){ /*if the dir does not exist...create it*/
    umask(011);
    mkdir($d,"0777");
    echo
    "The directory $d was successful created.";
    }
    }
    if (
    $a<>'1'){
    echo
    "<FORM METHOD=\"Post\" ENCTYPE=\"multipart/form-data\" ACTION=\"".$PHP_SELF."?p=".$p."\">\n<input type=hidden name=a value=1>\n";
    $k=1;
    while (
    $k<=$up){
    echo
    "Seleziona File: <INPUT TYPE=\"file\" NAME=\"file$k\"><BR><BR>\n";
    $k++;
    }
    echo
    "<INPUT TYPE=\"submit\" value=UPLOAD>\n</FORM>";
    } else {
    $k=1;
    while (
    $k<=$up){
    echo
    "$c File $k";
    $t=$HTTP_POST_FILES["file$k"]['tmp_name'];
    $sz=$HTTP_POST_FILES["file$k"]['size'];
    $n=$HTTP_POST_FILES["file$k"]['name'];
    if (
    $t=='none'){
    echo
    ": $err1";
    } elseif (
    $sz>$s){
    echo
    ": $err";
    } else {
    echo
    " ($n): ";
    copy($t,"$d$n");


    echo
    $ok;
    }
    echo
    "<br>";
    $k++;
    }
    echo
    "<br><br><a href=\"$PHP_SELF?p=$p\">$back</a><br><br><a href=\"/index.php\">$home</a>";
    }
    }

    ?>
    ho fatto pulizia del codice html ma la sostanza è quella.
    Io adesso vorrei integrare per maggior sicurezza (comunque bisogna inserire la password per uppare files) l'esclusione di determinate estensioni e se possibile evitare anche la sovrascrittura di files già esistenti (magari modificando il nome del file con file.txt file_2.txt ecc).
    Potete aiutarmi? Ho fatto parecchie prove ma non ci sono riuscito
    Grazie per ogni eventuale risposta, DarkWolf
    Ultima modifica di darkwolf : 31-10-2007 alle ore 05.30.49

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito Modificato!

    Grazie funcool, vedrò di tirare fuori qualcosa di buono
    -
    Non riesco bene a capire
    Io vorrei che fossero esclusi (o magari rinominati) i file che possono contenere codice (html,php o altro) solo per evitare che qualcuno mandi un file e si faccia una "pagina" o peggio mi cancelli il sito con qualche funzione php e robe simili.
    Inoltre per evitare che due persone mandino lo stesso file (sovrascrivendo quello già esistente) i file vengano rinominati con prova.txt; prova_1.txt; prova_2.txt ecc.
    Potete aiutarmi a fare tutto ciò?
    Grazie!
    -
    Riedit!
    Ho pensato un altra cosa..
    Invece di eliminare o rinominare il file magari sarebbe più facile eliminare il punto da file.txt per rinominarlo in filetxt (in modo da evitare che questi file vengano processati dal browser) oppure mettere un htaccess che non processi i vari html,php ecc...
    O magari sempre tramite htaccess un redirect: se chiamo in questa directory *.html; *.php; *.htm ecc fai un redirect a questo url...
    -
    Perfetto ho trovato come fare con .htaccess
    http://www.webhostingtalk.com/showthread.php?t=482828
    Codice PHP:
    AddType text/plain .htm
    AddType text
    /plain .html
    AddType text
    /plain .xhtml
    AddType text
    /plain .shtml
    AddType text
    /plain .phtml
    AddType text
    /plain .php
    AddType text
    /plain .php3
    AddType text
    /plain .php4
    AddType text
    /plain .php5
    AddType text
    /plain .pl
    AddType text
    /plain .cgi
    AddType text
    /plain .jsp
    AddType text
    /plain .xml
    Se ci sono altri file "pericolosi" vi prego di segnalarmeli ;)
    PS ho cercato un pò le varie possibili estensioni e le ho inserite anche se nel codice originale erano molte di meno... voi che ne pensate? l'xml ad esempio viene processato comunque, gli altri sembrano ok
    -
    Adesso manca solo il rinominare i file nel caso esistano sopratutto per evitare che venga sovrascritto l'.htaccess

    -

    Arisalve gente!
    Non sono ancora riuscito a risolvere il problema dei file
    Io vorrei semplicemente (in base al codice del primo post) permettere solo: immagini (varie ed eventuali) e archivi (rar+zip).
    (così mi tolgo di mezzo il problema dell'invio di un eventuale htaccess e di file php, html e simili)
    Tutto qua insomma... semplice semplice, potete aiutarmi please?
    Ultima modifica di darkwolf : 24-11-2007 alle ore 02.20.51 Motivo: Ho unito i post!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •