Questa pillola vuole aiutare tutti quelli che hanno problemi a causa della configurazione del server apache di chi li hosta!
Ovviamente non sarà possibile risolvere TUTTI i problemi ma tanti si
***Cosa sono i .htaccess***
I .htaccess sono dei file che contengono DIRETTIVE di apache. Di default hanno il punto davanti per essere invisibili tramite FTP e apache, sempre di default, blocca, ovviamente, il loro download.
Si possono usare per svariate cose essendo che contengono le direttive! Possono essere usati per potreggere le dir con user e pass, possono essere usati per bloccare l'accesso e tra le tante cose possono essere usati per impostare alcuni parametri di php!
Principalmente sono utilizzati su linux, anche perché apache non è usato sui sistemi windows. Comunque se doveste fare delle prove sotto win ricordatevi di cambiare il nome di questi file da .htaccess a htaccess.txt in modo da poterli utilizzare sotto windows
Inoltre dovete modificare, all'interno dei TAG Directory o Location, la direttiva AllowOverride impostandola su ALL e non su NONE o altro. Infatti questa dice ad apache dove è possibile usare i .htaccess! Per modificare il nome dei .htaccess in htaccess.txt dovete cercare la riga
e cambiarla incodice:AccessFileName .htaccess
Inoltre dovete anche cambiarecodice:AccessFileName htaccess.txt
incodice:<Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files>
In modo che i file di nome htaccess.txt e htpasswd.txt non siano scaricabili tramite internet! Ovviamente se usate l'autenticazione tramite user e pass di apache ricordatevi di usare come nome di file delle password htpasswd.txt altrimenti sarà possibile scaricare le vostre passwordcodice:<Files ~ "^ht(access|passwd)\.txt$"> Order allow,deny Deny from all Satisfy All </Files>
***PHP e .htaccess***
Come abbiamo detto i file .htaccess sono creati per contenere direttive di apache e sono usati per dire ad apache di applicare quelle direttive alla cartella\file in cui si trova il file .htaccess e a tutte le sotto cartelle e relativi file delle sotto cartelle di quella cartella!
In pratica se abbiamo una dir fatta cosi
e mettiamo il file dentro root, apache applicherà il contenuto di root anche a img, admin, user, src e log!codice:root\ |---img | |---admin | |---user |---src |---log
Le direttive di apache usati per impostare i settaggi di php sono
Come credo risulti evidente dai nomi, php_flag è usato per impostare a TRUE o FALSE quei settaggi dove è richiesto un valore che specifichi se abilitare o meno quella specifica opzione, mentre php_value e usato in tutti gli altri casi per impostare nelle opzioni di php i valori dei vari parametri che possono essere lettere o numeri o altro ancora!codice:php_flag php_value
Un'esempio di utilizzo è questo
Potete trovare l'elenco completo dei settaggi che si possono modificare all'indirizzo:codice:php_flag "register_global" "0" php_value "upload_max_filesize" "4M"
http://it2.php.net/ini_set
php_flag può avere valori 0, ovvero FALSE, 1, ovvero TRUE
php_value deve avere valori attinenti al settaggio che sei vuole cambiare
I settaggi si dividono in 4 gruppi:
Qui di seguito riporto tutti i vari campi utili, con relativa descrizione dei settaggi che possonoe essere modificati tramite .htaccesscodice:PHP_INI_USER L'impostazione può essere settata negli script dell'utente tramite ini_set PHP_INI_PERDIR L'impostazione può essere settata nel php.ini, nell'.htaccess ed infine nel file di configurazione di apache httpd.conf PHP_INI_SYSTEM L'impostazione può essere settata soltanto nel php.ini e nell'httpd.conf PHP_INI_ALL L'impostazione può essere settata ovunque (quindi tramite ini_set, php.ini, .htaccess e httpd.conf)
Il primo campo è il nome della variabile, il secondo è il valore di default, il terzo con cosa deve essere usato ed infine il quarto contiene la descrizione
Io vi consiglio di avere SEMPRE un file .htaccess di questo tipocodice:---===[ VARIABILI SESSIONI ]===--- session.save_path "/tmp" VALUE Specifica dove i file che conterranno le sessioni saranno salvate session.name "PHPSESSID" VALUE Specifica il nome del cookie, o del parametro get che conterra l'id di sessione session.save_handler "files" VALUE Speficica l'handler per la gestione delle sessioni session.auto_start "0" FLAG Indica se la sessione deve partire automaticamente all'avvio session.gc_probability "1" VALUE La probabilità, da 1 a DIVISOR, di esecuzione della Garbage Collection delle Sessioni session.gc_divisor "100" VALUE Contiene il massimo numero tramite il quale calcolare se eseguire la GC o meno session.gc_maxlifetime "1440" VALUE Durata della sessione dall'ultima azione session.serialize_handler "php" VALUE Handler per gestire la serializzazione session.cookie_lifetime "0" VALUE Durata del cookie session.cookie_path "/" VALUE Path del cookie session.cookie_domain "" VALUE Dominio del cookie session.cookie_secure "" FLAG Se il cookie è per HTTPS o no session.use_cookies "1" FLAG Se può usare i cookie session.use_only_cookies "0" FLAG Se può usare SOLO i cookie session.referer_check "" VALUE Se deve controllare il referer session.use_trans_sid "0" FLAG ??? ---===[ VARIABILI PER L'OUTPUT ]===--- output_handler NULL VALUE Specifica a quale funzione passare i dati da inviare a video ---===[ VARIABILI PER L'OUTPUT COMPRESSO ]===--- Le variabili qui riportate servono a impostare se php deve inviare il contenuto sotto forma di GZIP per risparmiare banda o meno zlib.output_compression "0" FLAG Specifica se abilitare o meno la compressione GZIP zlib.output_compression_level "-1" VALUE Specifica il livello di compressione da 1 a 9 ---===[ VARIABILI PER L'HIGHLIGHT DEL CODICE PHP ]===--- Le variabili qui riportate servono a modificare i colori usati dai comandi php per fare l'highlight highlight.bg HL_BG_COLOR VALUE Colore dello sfondo highlight.comment HL_COMMENT_COLOR VALUE Colore dei commenti highlight.default HL_DEFAULT_COLOR VALUE Colore di default highlight.html HL_HTML_COLOR VALUE Colore dell'html highlight.keyword HL_KEYWORD_COLOR VALUE Colore delle parole chiavi highlight.string HL_STRING_COLOR VALUE Colore delle stringhe ---===[ VARIABILI PER IL MAGIC QUOTE ]===--- magic_quotes_gpc "1" FLAG Se deve backslashare i dati provenienti dal GET, dal POST e dai COOKIE magic_quotes_runtime "0" FLAG Se deve backslashare in automatico i dati durante l'esecuzione del codice magic_quotes_sybase "0" FLAG Se deve backslashare i dati stile SyBase ---===[ VARIABILI PER IL REGISTER GLOBAL ]===--- register_globals "0" FLAG Se deve utilizzare il register global ---===[ VARIABILI PER IL AGGIUNTA DEI FILE ]===--- auto_append_file NULL VALUE Nome del file da far accodare all'esecuzione dello script auto_prepend_file NULL VALUE Nome del file da far precedere all'esecuzione dello script ---===[ VARIABILI PER IL TEMPO DI ESECUZIONE ]===--- max_execution_time "30" VALUE Durata massima dell'esecuzione dello script max_input_time "60" VALUE Durata massima dell'acquisizione dei dati dal browser ---===[ VARIABILI PER IL MAGIC QUOTE ]===--- upload_max_filesize "2M" VALUE Massima dimensione dei file da uploadare post_max_size "8M" VALUE Massima dimensione dei dati post possibile da ricevere ---===[ VARIABILI PER IL MAGIC QUOTE ]===--- memory_limit "8M" VALUE Limite di memoria massimo da consumare - ALZARE SOLO SE STRETTAMENTE NECESSARIO!!! ---===[ VARIABILI PER IL MAGIC QUOTE ]===--- allow_url_fopen "1" VALUE Permette di utilizzare in fopen, file, file_get_contents e simili i wrapper per gli url ---===[ VARIABILI PER IL MAGIC QUOTE ]===--- engine "1" VALUE Abilita o disabilita il motore php
perché questi settaggi possono salvarvi da TANTI possibili exploit creati per mancanza di conoscenza o disattenzionecodice:php_flag "magic_quotes_gpc" "1" php_flag "magic_quotes_runtime" "0" php_flag "register_globals" "0" php_flag "allow_url_fopen" "0"
Li si abilita di default il magic quotes e si disabilita quello durante l'esecuzione, dopo di che si disabilita il register global xche è MOLTO pericoloso ed infine disabilita i wrapper degli url nelle funzioni della gestione dei file. Ovviametne impostateli cosi se non avete problemi di altro tipo
Per vedere se sono abilitati o meno mettete un phpinfo.php, che contenga
e visualizzatelo!codice:<?php phpinfo(); ?>
Cercate il parametro li dentro e controllate la colonna Local Value, non la Master Value, xche la master value indica il settaggio generale
spero di esservi stato d'aiuto!
ciaooooooooooo
PS: scusate per il mega tag code![]()


Rispondi quotando


