Visualizzazione dei risultati da 1 a 4 su 4

Discussione: PHP e FTP

  1. #1

    PHP e FTP

    Vorrei creare una funzione in php che apre un file FTP su una determinata directory remota, ne stampi a video il contenuto e permetta l'aperture dei file elencati. Sono File PDF, vorrei che cliccando sul link del file si aprisse il PDF.
    // Connessione FTP - Funzionante
    $ftp_id = ftp_connect("ftp.xxx.it");
    $loginftp='user';
    $passwordftp='password';
    $ftp_login = ftp_login($ftp_id,$loginftp,$passwordftp);
    // Stampa a video dei file contenuti nella mia directory - Funziona
    $list=array();
    $list=ftp_rawlist($ftp_id, $directory);
    $directory='/DOCUMENT';
    print "<table><tr>";
    foreach ($list as $v) {
    $v1=trim($v);
    $lunghezza=strlen($v1);
    $pos=strpos($v1,":");
    $pos=$pos+4;
    $diff=$lunghezza-$pos;
    $file=substr($v1,$pos,$diff);
    if ($file!='.' || $file!='..')
    echo "<tr><td><font face=\"Tahoma\" size=\"1\">
    <a href=\"./$directory/$file\">$file</a></font></td></tr>";
    il problema è che con href dovrei indicare il percorso tipo ftp://ftp.xxx.it/DOCUMENT/, ma se faccio così il brower mi chiede user e password!
    Grazie mille a tutti

  2. #2
    Secondo me ci sono di mezzo problemi di sicurezza, ma facciamo finta per ora che non ci interessi.
    Potresti usare CURL per recuperare il file di interesse.
    Se la lista funziona correttamente, anzichè fare un link diretto al file, rimandi a un'altra pagina a cui passi il nome del file (i problemi di sicurezza li vediamo dopo, semmai). In quell'altra pagina, tramite CURL, vai a recuperare il file corretto, ne prendi il contenuto e lo mandi a video tramite header.
    In soldoni questo sarebbe da fare, secondo me.

    Vediamo i problemi di sicurezza.
    Se il nome del file e della directory non sono correttamente validati, ci potrebbero essere problemi di "remote file execution" o "directory traversal vulnerability" o peggio "remote privilege excalation". Dovresti quindi verificare per bene l'imput di ingresso alle funzioni CURL (es: se l'estensione passata non è pdf, errore. Se il nome del file richiesto non esiste nella cartella in esame, errore. Se il file richiesto contiene caratteri non alfanumerici, errore. Ecc.)


  3. #3
    In locale dal mio PC, la funzione che si collega e legge il contenuto di una cartella via FTP funziona, ma messo on line no, perchè non riesce a scrivere l'array nell'area temporanea..avevi ragione sui problemi di sicurezza e privilegi! Non ho mai usato le Funzioni CURL, ore le guardo, recupera tranquillamente immagini e mantiene la formattazione iniziale?
    Grazie mille
    Antonio

  4. #4
    Sì, CURL spesso si usa proprio per recuperare pagine formattate in html (o documenti o altro) altrimenti non accessibili con normali funzioni PHP.

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.