Bloccare l’accesso a Files e / o directory usando direttive in htaccess
Fujitsu Esprimo P757/E85+ Intel Quad Core i7 1TB SSD Hard Drive 32GB Memoria Windows 11 Pro DVD Masterizzatore Business Tower Computer PC (Ricondizionato)
260,00 € (a partire da 29/01/2025 12:42 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Se avete la necessità di bloccare l’accesso a determinati files o cartelle sul vostro Web un modo relativamente semplice è quello di utilizzare apposite direttive nel file .htaccess
Quelli che seguono sono semplici esempi dei casi più comuni in cui si decide di bloccare un determinato file, uno specifico gruppo di files, una cartella. E’ anche possibile bloccare ‘accesso solo a determinati indirizzi IP e consentirlo ad altri
Negare l’accesso ai files
Negare l’accesso a estensioni di file specifiche
Il codice seguente forza qualsiasi file che termina con .inc a generare un errore 403 Forbidden quando viene visitato:
<Files ~ "\.inc$">
Order Allow,Deny
Deny from All
</Files>
TP-Link M7350 (Ricondizionato) Saponetta WiFi Portatile 4G LTE Cat4, Visualizzazione Sullo Schermo, WiFi N300Mbps, Router WiFi con Sim, Router 4G, Modem 4G Sim, Batteria Ricaricabile
39,99 € (a partire da 29/01/2025 13:16 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)I nomi di file che iniziano con un punto sono considerati “nascosti” da LINUX / UNIX.
Quasi tutti i servizi di hosting non consentono il recupero di “.htaccess” e “.htpasswd”, ma è possibile negare ricorsivamente tutti gli accessi a tutti i file nascosti inserendo quanto segue in un .htaccess di primo livello:
RedirectMatch 403 /\..*$
Negare l’accesso alle cartelle
Negare l’accesso a un elenco di directory
Se non avete un file di index nella directory contenete il Web, tutti i files saranno elencati in caso di richiesta di visualizzazione. Il codice seguente forza questa elencazione a generare invece un errore 404 Forbidden quando il sito viene visitato:
Options -Indexes
Negare l’accesso durante un’ora specifica della giornata
Se desideriamo bloccare l’accesso ai file in una directory durante un orario specifico della giornata, si può fare aggiungendo il seguente codice a un file .htaccess:
RewriteEngine On
# If the hour is 16 (4 PM)
RewriteCond %{TIME_HOUR} ^16$
# Then deny all access
RewriteRule ^.*$ - [F,L]
Se qualcuno visita la directory in qualsiasi momento tra le 16:00 e le 16:59, viene generato un errore interno del server 500. Si possono anche specificare più ore:
RewriteEngine On
# Multiple hour blocks
# If the hour is 4 PM or 5 PM or 8 AM
RewriteCond %{TIME_HOUR} ^16|17|08$
# Then deny all access
RewriteRule ^.*$ - [F,L]
Negare l’accesso a una directory
Usiamo questo comando per bloccare l’accesso ad una directory ovunque posizionata nel nostro Web :
RewriteEngine On
RewriteRule (^|/)blah(/|$) - [F]
Negare l’accesso da indirizzi IP specifici o da soecifici domini
Se avete problemi con determinati visitatori del sito web, si possono facilmente bannare. Esistono due modi differenti per escludere i visitatori:
- utilizzando il loro indirizzo IP
- utilizzando il nome di dominio da cui stanno visitando.
Ecco un esempio che nega un utente tramite il suo indirizzo IP:
deny from 153.236.241.101
Quando l’utente tenta di connettersi al sito da quell’IP specifico, riceve una pagina 403 Forbidden. Se si desidera bloccare un intero blocco di IP, lasciamo l’ultimo ottetto spento. Per esempio:
deny from 153.236.241
Questa direttiva nega l’accesso a chiunque provenga da un IP nell’intervallo da 153.236.241.0
fino a 153.236.241
.255.
Il link che segue è uno strumento online utile per generare automaticamente una serie di indirizzi che rappresentino qualunque intervallo IP:
Consentire l’accesso da un IP specifico
Se dovete negare l’accesso al sito a chiunque pur consentendo solo a noi stessi o a un altro indirizzo IP specifico di visitarlo, possiamo utilizzare qualcosa del genere:
order deny,allow
deny from all
allow from <YOUR_IP_ADDRESS>
Negare l’accesso da un dominio specifico
Questa direttiva nega l’accesso a chiunque si colleghi al sito da www.example.com. Se qualcuno fa clic su un collegamento in example.com che reindirizza al nostro sito, vedrà un errore 403 Forbidden:
SetEnvIfNoCase Referer "example.com" bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer
Questo esempio genera un errore interno del server 500 per chiunque si colleghi da example.com:
RewriteEngine on
RewriteCond %{HTTP_REFERER} example\.com [NC,OR]
RewriteRule .* - [F]
Il seguente esempio reindirizza qualsiasi visitatore che si connette da example.com a google.com:
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://example.com/
RewriteRule /* http://www.google.com [R,L]
Esempio pratico
Bloccare l’accesso al file di amministrazione di WordPress wp-login.php
Se volessimo bloccare l’accesso al file di amministrazione di WordPress wp-login.php ma consentirla esclusivamente da determinati indirizzi IP la direttiva da utilizzare sarebbe questa:
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from 192.168
Allow from 10.0.0
</Files>
Il file risulterebbe non accessibile per chinque ( errore 403 Forbidden ) ma accessibile per chi provenga da indirizzi IP di classe 192.168 e/o 10.0.0
ATTENZIONE : Per quanto riguarda il blocco degli IP con l’utilizzo di questa direttiva vi ricordo che se utilizzate Cloudflare dovete ripristinare la corretta visualizzazione dell’indirizzo IP dei clienti