Dieci trucchi con .htaccess che tutti dovrebbero conoscere

I webmaster possono utilizzare una serie di impostazioni a livello di directory su web server NCSA compatibili come Apache HTTP Server con l’aiuto del file di configurazione .htaccess (acronimo di Hypertext Access). In questo modo è possibile stabilire, ad esempio, quali utenti possono accedere a determinati file. Anche la creazione di reindirizzamenti automatici è un tipico esempio di attacchi hacker tramite htaccess.

Cos’è esattamente un file .htaccess?

L’.htaccess è un file di testo grazie al quale utenti autorizzati possono modificare le impostazioni di una directory specifica utilizzando web server NCSA compatibili. Questa tecnica è stata scoperta negli anni ’90 per il server web NCSA HTTPD, allora rivoluzionario, ma oggi entra in azione soprattutto con il ben più utilizzato Apache. Questo processo viene gestito da una o più centrali di file di configurazione che si chiamano httpd.conf. Questi file di configurazione superiori vengono di solito salvati all’interno dell’elenco di programmi del server web stesso e definiti dall’amministratoredel server. In questo file l’amministratore stabilisce, tra le altre cose, se un utente riceve l’autorizzazione a cambiare la configurazione del server attraverso trucchi .htaccess. Se riceve l’autorizzazione, l’utente può creare e modificare i file .htaccess per ogni directory desiderata, sovrascrivendo parti della configurazione a livello della directory.

Ogni volta che il server web accede a una pagina, sovrascrive ricorsivamente tutte le directory superiori senza trasferire le informazioni; in altre parole il file .htaccess di una sottodirectory sovrascrive quello di una directory superiore. Le impostazioni del server, che vengono modificate con un file .htaccess, sono valide a partire dal momento in cui l’.htaccess viene memorizzato nella rispettiva directory, senza necessità di riavviare il server. La trascrizione deve essere corretta al 100 per cento, in quanto un .htaccess scritto male impedisce, in alcuni casi, l’accesso a tutto il server. Se i trucchi .htaccess vengono usati correttamente, si ha accesso ad alcune funzioni utili per la gestione del server web. Poiché queste possono essere trasferite velocemente e incorporate in modo semplice nella struttura del sistema esistente, spesso si utilizza anche la denominazione attacchi hacker tramite .htaccess. 

Creare un file .htaccess: funziona così

Poiché i file .htaccess sono dei semplici file di testo, è facile crearli e modificarli con un qualsiasi editor di testo. In base al tipo di accesso disponibile al server web differisce anche la procedura di creazione. Con la connessione Telnet o SSH è possibile creare e modificare file .htaccess direttamente sul server. Se si ha soltanto un accesso FTP a disposizione, è necessario prima creare il file in locale e in seguito caricarlo. Nei sistemi Unix i file di configurazione di una directory specifica cominciano sempre con un punto. Questo lo caratterizza come “nascosto”, che graficamente, utilizzando un client FTP, può far apparire il file .htaccess caricato come scomparso.

Durante la creazione di un file .htaccess in locale su sistemi Windows il punto genera inoltre un problema facilmente risolvibile. Affinché l’editor non ci aggiunga la tipica estensione .txt, si dovrebbe scegliere la voce “tutti i file” quando lo si salva. Quando il file .htaccess è stato scritto con il comando desiderato, va spostato nella directory appropriata. A questo punto diventa subito valido, anche per tutte le sottodirectory.

Configurare il server con attacchi hacker tramite htaccess

Grazie ai file .htaccess gli utenti autorizzati dall’amministratore del server hanno la possibilità di influenzare in modo rapido e semplice la configurazione del server web. Così per esempio, grazie all’autenticazione http, possono proteggere intere directory da accessi non autorizzati. Inoltre è possibile impostare pagine di errore o reindirizzamento. Esistono diversi suggerimenti e trucchi.htaccess. I dieci più importanti sono descritti nei seguenti paragrafi: 

1. Pagine di errore alternative

Se durante l’accesso al sito si verifica un errore, i server web mostrano di default un file HTML standard o messaggi codificati. Questi messaggi di errore a volte sono proprio una seccatura e tutt’altro che user-friendly. Con l’aiuto dell’.htaccess è possibile impostare pagine o avvisi alternativi che su un negozio online, per esempio, rimandano a un articolo simile. Per creare proprie pagine di errore è necessario inserire i seguenti dati nel file .htaccess, utilizzando la regola ErrorDocument, seguita dal numero d’errore e il percorso della pagina:

# messaggio di errore se il server si trova in locale
ErrorDocument 404 /errors/404notfound.html

Se la pagina di errore si trova direttamente sulla root del sito o rimanda a un URL esterno, è possibile digitare l’URL completo nel file .htaccess, che in questo caso si troverà nella directory radice:

# messaggio di errore se il server si trova su un
ErrorDocument 404 http: //www.miodominio.it/errore.html 

2. Redirect

Un grande ambito di utilizzo dei file .htaccess sono i redirecting o reindirizzamenti. È possibile per esempio reindirizzare singoli file all’interno di un sito o anche trasmettere le richieste a un altro dominio. Questo è utile soprattutto se si trasferisce un sito.  Una volta salvato nella root, il seguente codice fa in modo che le richieste al dominio originario vengano trasferite dal server al nuovo dominio:

# semplice redirect
Redirect / http://www.nuovo-dominio.it/

È possibile trasferire singoli file con lo stesso metodo all’interno di un sito, nel caso in cui, per esempio, il nome della pagina sia cambiato:

# redirecting di singoli file
Redirect /vecchia_pagina.html http: //www.nuovosito.com/nuova_pagina.php 

3.  Creare un’area protetta da password

Chi non volesse scrivere uno script per login in PHP, ma ha comunque bisogno di proteggere una directory o dei file sul suo server, può utilizzare invece dei trucchi .htaccess per la configurazione di ambiti protetti. Innanzitutto per questo tipo di password è necessario un secondo file chiamato .htpasswd, nel quale vengono salvate le rispettive password. Queste vanno inserite nel sistema Unix solo in modo cifrato (a tal scopo esistono diversi generatori di .htpasswd). Ecco come creare directory protette:

# protezione della password con .htaccess
AuthType Basic
AuthName “Restricted Area”
AuthUserFile /home/siti/www.sito.com/privato/.htpasswd (inserire il percorso assoluto per   giungere al file dove sono contenute le password)  
AuthPGAuthoritative Off
Require valid-user User1 User2 User3

Inoltre il file .htpasswd viene creato con gli utenti insieme alle loro password cifrate:

# .htpasswd – file per nomi utente e password
utente1:password1_criptata
utente2:password2_criptata
utente3:password3_criptata

Mentre viene creato il file .htpasswd, preferibilmente sulla root, è necessario che il file .htaccess si trovi nella stessa cartella che si vuole proteggere.

4. Aumentare il limite di memoria PHP

L’utilizzo di applicazioni PHP è soggetto a un memory limit preciso. Il memory limit determina l’utilizzo massimo della memoria, che tutti gli script PHP utilizzati sul server possono influenzare. Con il seguente comando nel file .htaccess è possibile aumentare la quantità di memoria:

# PHP memory limit
php_value memory_limit 128M

Il valore dato, cioè 128M, rappresenta in questo caso un limite di 128 megabyte. In base alla memoria e ai requisiti del server è possibile impostare anche altri limiti.

5. Modificare il fuso orario del server

Se il server web è impostato su un fuso orario sbagliato, è possibile modificarlo sull’.htaccess con il seguente codice:

# impostare il fuso orario
SetEnv TZ Europe/Roma 

6. Bloccare indirizzi IP

È possibile impedire l’accesso al sito a indirizzi e ambiti IP specifici. Con il giusto codice nel file .htaccess è possibile escludere addirittura tutti gli indirizzi IP e garantirne l’accesso soltanto ad alcuni. Così si può per esempio rendere disponibile l’accesso al web soltanto ai dipendenti nell’ambito di un intranet aziendale. Il seguente comando riassume alcuni possibili accessi limitati:

# regole per bloccare indirizzi IP
Order deny,allow
Deny from .hotmail.com
Deny from 192.168         
Allow from 192.168.220.102

Con il comando „order“ si definisce l’ordine di lettura dei dati inseriti: la sequenza di inserimento non è importante. Gli altri comandi comunicano al server, che tutti gli utenti con identificatore .hotmail.com nonché tutti quelli con indirizzo IP numerico inclusi nel range 192.168 non possono accedere al sito. Un’eccezione è l’user con indirizzo IP 192.168.220.102.

7. Reindirizzamento del sito da HTTP a HTTPS

Chi per il suo dominio utilizza un certificato SSL, ha la possibilità di reindirizzarlo attraverso un comando .htaccess su un protocollo HTTPS cifrato:

# attivare HTTPS
RewriteEngine On
RewriteCond %{Server_Port} !=443
RewriteRule ^(.*)$ https ://miodominio.it/$1 [R=301, L]

8. Attivare l’accesso ai file tramite il browser

Con il seguente comando si può mostrare il contenuto della cartella nel browser e renderlo scaricabile da altri utenti:

# mostra i contenuti della directory
Options +Indexes 

9. Bloccare l'hotlinking delle immagini

Gli hotlink sono dei link mediante i quali una terza persona collega un file multimediale sul suo sito web, solitamente immagini, che sono salvate su un altro host. Così per il proprietario vero si crea un aumento del volume di dati, che non è causato da lui. Grazie ad alcuni trucchi .htaccess è possibile bloccare il collegamento su determinati tipi di dati del proprio sito con il seguente comando:

# bloccare hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://il-mio-dominio-webhosting/.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^http://www.il-mio-dominio-webhosting/.*$ [NC] [OR]
RewriteRule .*\.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ - [F] 

10. Configurare il set di caratteri per documenti

I caratteri speciali creano spesso problemi, se non si attiva la giusta codifica di caratteri. Con il file .htaccess si può codificare, a livello di directory, quale sistema utilizzare per i rispettivi documenti. Il seguente comando definisce la codifica UTF-8 per tutti i documenti:

# codificare il sistema di scrittura
AddDefaultCharset utf-8

Se volete codificare soltanto alcuni tipi di documenti con un determinato sistema di scrittura, è necessario inserire il seguente comando:

# codifica dei caratteri soltanto per determinati file
AddDefaultCharset utf-8 .css .htm .html .xhtml .php

Trucchi .htaccess: semplici e facili da applicare

I trucchi e suggerimenti qui elencati per utilizzare i file .htaccess per la configurazione del server, danno solo una piccola idea dell’ampio spettro di funzionalità di questo pratico file. Tutti i comandi vengono subito eseguiti dal server web, senza che sia necessario un riavvio completo.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.