Corsi on-line

PHP.ini e direttive per l’upload dei file

Una delle richieste di assistenza che ricevo più spesso relativamente a PHP riguarda la giusta configurazione delle direttive per l’upload dei file; a questo proposito, nella maggior parte dei casi consiglio di non modificare i setaggi predefiniti nel caso in cui non sussistano esigenze particolari, quelli già impostati di default dovrebbero infatti soddisfare il 90% delle esigenze indipendentemente dal progetto a cui si sta lavorando.

PHPVisto che però l’argomento sembrerebbe suscitare alcuni dubbi, vediamo quali sono le direttive in oggetto e in quali casi possa rendersi giustificabile un’eventuale modifica. Partiamo con file_uploads, se settata su “1” essa permette le operazioni di upload di file, come impostazione di default è appunto pari a “1” e non dovrebbe essere necessario disabilitarla tramite “0” se non per particolari(ssime) necessità legate alla sicurezza.

upload_tmp_dir è invece la directory temporanea disponibile per il transito dei file in corso di upload; tale cartella deve avere i permessi di scrittura è ha come valore predefinito NULL, ciò significa che in mancanza di una valorizzazione diversa l’engine di PHP utilizzerà la directory di sistema. E’ quindi possibile definire una cartella differente per particolari esigenze legate alla gestione dei transiti, ma si tenga conto che nel caso in cui la directory alternativa non abbia i permessi di scrittura allora PHP impiegherà comunque la temporanea del sistema corrente.

max_input_nesting_level e max_input_vars sono direttive di introduzione relativamente recente, entrambe disponibili a partire da PHP 5.3.9; la prima ha “64” come valore di default, la seconda “1000”; max_input_nesting_level definisce la massima profondità per la nidificazione delle variabili di input come per esempio $_GET e $_POST, mentre max_input_vars indica quante variabili di input possono essere accettate in modo da limitare attacchi basati su DoS (Denial of Service).

Tenete conto che raramente vi troverete a lavorare con un numero di nidificazioni anche soltanto vicino al valore predefinito, inoltre il “1000” specificato per max_input_vars vale separatamente per ogni singola superglobale ($_GET, $_POST, $_COOKIE..); motivi per i quali si potrebbe avere l’esigenza di associare a tali direttive valori inferiori, magari (o meglio “al limite”) per non superare i carichi di lavoro previsti su una determinata applicazione limitando le richieste.

Abbiamo infine upload_max_filesize, che stabilisce la dimensione massima di un file inviato (2 Mb di default incrementabili o meno sulla base del propri progetto) e max_file_uploads (disponibile da PHP 5.2.12 con valore predefinito “20”), che definisce il numero massimo di file caricabili contemporaneamente in upload; a partire da PHP 5.3.4, i campi upload vuoti non contribuiscono al raggiungimento del limite.

Per approfondire PHP.net

Post correlati
I più letti del mese
Tematiche