· Tutorial ·

Bloquejar accessos web mitjançant .htaccess

En aquest manual t'explicarem com negar l'accés a algú al nostre lloc web mitjançant l'edició del fitxer .htaccess.

Connecta't via FTP al directori "/dades/web/" i edita el fitxer ".htaccess".

info El fitxer ".htaccess" es troba ocult. Si no ho veus, hauràs d'activar l'opció per veure fitxers ocults al client FTP. També hi ha la possibilitat que hagis de crear-lo.

A continuació, afegeix les línies de codi que especifiquem segons les necessitats de la teva pàgina web.

Negar l'accés a una IP en concret

Amb aquest primer codi, podràs bloquejar l'accés a un usuari per la seva adreça IP concreta. D'aquesta manera, quan l'usuari es vulgui connectar, se li mostrarà un error 403 Forbidden:

deny from 173.236.241.100 

És possible que necessitis bloquejar un bloc sencer d'IP (no ho recomanem). Per fer-ho has de deixar l'últim octet sense especificar, així negues l'accés a qualsevol que tingui aquesta IP en el rang de 173.236.241.0 a 173.236.241.255:

deny from 173.236.241.

Permetre l'accés només a una IP en concret

Si per contra, el que necessites és que ningú pugui accedir a la teva web, però tu o algú ha de poder veure-la per treballar-hi, pots bloquejar l'accés a totes les IPs menys a una en concret amb el codi següent:

order deny,allow
deny from all
allow from <TU_DIRECCION_IP>

Negar l'accés a un domini en concret

Amb això farem que qualsevol que es connecti al teu lloc des d'un domini concret, per exemple "www.swmanuales.com", no hi pugui accedir. Hi ha tres maneres de dur-ho a terme:

403 forbidden

Si algú fa clic en un enllaç a swmanuales.com que redireccioni al teu lloc, ells veuran un error 403 Forbidden error:

SetEnvIfNoCase Referer "swmanuales.com" bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer

500 internal server error

Es mostrarà un error 500 Internal Server Error per denegar qualsevol petició web que vingui redireccionada des del domini swmanuales.com:

RewriteEngine on
RewriteCond %{HTTP_REFERER} swmanuales\.com [NC,OR]
RewriteRule .* - [F]

Redirecció a google.com

Amb aquest codi es redirecciona a qualsevol visitant de la URL http://swmanuales.com cap a la URL http://www.google.com:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://swmanuales.com/
RewriteRule /* http://www.google.com [R,L]

Negar accés a arxius

Amb aquest codi negarem l'accés a qualsevol arxiu amb l'extensió que indiquem. En lloc de visualitzar el contingut, es veurà un error 404. En l'exemple, el codi esforça qualsevol arxiu acabat en .inc a donar l'error 403 quan sigui visitat:

<Files ~ "\.inc$">  
Order Allow,Deny
Deny from All
</Files>

Negar accés a arxius "amagats"

Els arxius amagats com el cas del .htaccess, són aquells que comencen amb un punt ".". Aquests tipus d'arxius no són visibles per als visitants. Pots, recursivament, negar tots els accessos a tots els arxius posant el següent codi a la part superior del teu .htaccess:

RedirectMatch 403 /\..*$

Negar accés a directoris

Si no tens un arxiu índex al teu directori, tots els teus arxius són llistats en una llista de directori perquè el vegi qualsevol. Habitualment, sempre tenim un arxiu "index.html o index.php" al nostre servei, però podem necessitar negar l'accés per temes de seguretat. Pots negar l'accés a una carpeta o directori concret amb el codi següent perquè quan un visitant accedeixi a la llista de directoris doni un error 404 Forbidden:

Options -Indexes

Negar accés a un directori en concret

Si tens un directori concret al qual no vols que accedeixin els usuaris, has de fer servir el següent codi. Nosaltres posarem per exemple que el directori que volem bloquejar s'anomeni "swmanuales":

RewriteEngine On
RewriteRule (^|/)swmanuales(/|$) - [F]

Negar accés durant una hora específica al dia

D'aquesta manera, negarem l'accés a la nostra web durant una hora específica del dia. Podem especificar una o diverses hores.

Exemple, especificant que no es permeti l'accés de 15:00 a 15:59:

RewriteEngine On
# Si la hora és 15 (3 PM)
RewriteCond %{TIME_HOUR} ^15$
# Negar tots els accessos
RewriteRule ^.*$ - [F,L]

Exemple, especificant que no es permeti l'accés de 15:00 a 16:59 i de 6:00 a 7:00:

RewriteEngine On
# Si la hora és 3 PM o 4 PM o 6 AM
RewriteCond %{TIME_HOUR} ^15|16|06$
# Negar tots els accessos
RewriteRule ^.*$ - [F,L]
i