Uw website beveiligen met .htaccess
Met htaccess is het mogelijk om de toegang tot een directory te 'sturen' (Linux
webruimte). Dit doet u door een ascii-file genaamd .htaccess (let op de punt)
te plaatsen in de betreffende directory. In deze file worden opdrachten opgenomen.
Een htaccess file werkt voor de directory waarin de file geplaatst wordt en
de directories daaronder. Binnen een website mogen meerdere files gebruikt worden.
Afsluiten directory-listing
In veel gevallen is het niet wenselijk dat bezoekers de inhoud van directories
kunnen bekijken. Dit kan opgelost worden door in iedere directory het bestand
index.html te zetten. Index.html wordt nl. altijd automatisch door de browser
geopend, waardoor een directory listing voorkomen wordt. Voor een uitgebreide
website is dit omslachtig. Daarnaast is het zeer omslachtig deze pagina's aan
te passen. Htaccess is een efficiëneter oplossing.
- Maak een .htaccess file
- zet hierin het commando options
-indexes
Het is nu niet meer mogelijk om de directory-inhoud van de huidige en de ondergelegen
directory's op te vragen. Plaats de .htaccess file in de www-directory en uw
hele site is beschermd. Variaties:
- options +indexes
zet de listing aan.
- IndexIgnore *.gif *.jpg
Sta directory listing toe, maar geef geen gif en jpg-files weer.
Bezoekers doorsturen naar een andere pagina
Met de toevoeging: Redirect /dir/page1.htm
http://mydomain/somedir/page2.htm. Is het mogelijk om bezoekers van
pagina1.htm door te sturen naar http://mydomain/somedir/page2.htm.
Afvangen fouten
U kent ongetwijfeld de lelijke 404 foutmelding die u ziet als een bepaald pagina
niet meer bestaat. Deze fouten zijn op te vangen. Op het moment dat er een dergelijke
fout ontstaat, kan de bezoeker doorgestuurd worden naar een door u te bepalen
pagina. Voeg (een van de) regels toe aan uw .htaccess file:
ErrorDocument 403 /somedir/page1.html
ErrorDocument 404 /somedir/page2.html
etc.
| Successful Client Requests |
Client Request Redirected |
200 OK
201 Created
202 Accepted
204 No Content
205 Reset Content
206 Partial Content |
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
303 See Other
304 Not Modified
305 Use Proxy |
| Client Request Errors |
Server Errors |
400 Bad Request
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable (encoding)
407 Proxy Authentication Required
408 Request Timed Out
409 Conflicting Request
410 Gone
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type |
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported |
Afsluiten directory met een wachtwoord
Met htaccess is het mogelijk om een bepaalde directoy af te sluiten met een
wachtwoord. Wilt u een of meerdere gebruikers toegang geven, plaats dan een
.htaccess file met de volgende inhoud:
AuthUserFile /home/gebruiker/home/gebruiker/www/toegang/.htpasswd
AuthGroupFile /dev/null
AuthName SecretWebsite
AuthType Basic
<limit GET POST>
require valid-user
</limit>
In dit voorbeeld wordt het wachtwoord en gebruikersnaam van de mensen die toegang
mogen krijgen, opgeslagen in de directory /home/gebruiker/home/gebruiker/www/toegang/.
Om een gebruiker toe te voegen moet u met ssh (secure telnet) inloggen op de
server om een wachtwoordfile (.htpasswd) te creeren. De inloggegevens voor ssh
zijn gelijk aan de inloggegevens voor ftp. Ga naar de juiste directory (in dit
geval /home/gebruiker/home/gebruiker/www/toegang/) en voer het volgende commando
uit:
htpasswd -c .htpasswd username
Vervang username met de naam waarmee u wilt inloggen. De server vraagt nu om
een wachtwoord en slaat dit gecodeerd op. De directory is nu beveiligd. Wilt
u meerdere gebruikersnamen toevoegen? Gebruik dan na de eerste keer:
htpasswd .htpasswd username
Als u gebruikersnamen wilt wissen, opent u .htpasswd en verwijderd de gewenste
regel(s).
Beveiligen van de .htaccess file zelf
Natuurlijk moet ook de .htaccess file beveiligd worden. Als iemand deze file
kan benaderen, zou deze persoon meteen weten waar bijvoorbeeld de .htpasswd
file staat. Voeg daarom toe:
<files .htaccess>
order allow,deny
deny from all
</files>
De eerste regel geeft aan dat het commando 'deny'
alleen geldt voor de file .htaccess. De derde regel geeft aan dat niemand toegang
heeft (iedere toegang wordt geweigerd). Het opvragen van deze file zal nu resulteren
in een error 403 (Forbidden).
Als extra beveiliging kan aan de file via ssh de permissie 644 gegeven worden
(chmod 644).
|