Bloccare l’accesso a Files e / o directory usando direttive in htaccess

Bloccare l’accesso a Files e / o directory usando direttive in htaccess

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>

Negare l’accesso ai file “nascosti”

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

per dubbi o suggerimenti...ci scriviamo nei commenti!!!Bloccare l’accesso a Files e / o directory usando direttive in htaccess

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Available for Amazon Prime