!

Dette materialet blir ikke lenger vedlikeholdt. Du vil finne oppdatert materiale på siden: http://borres.hiof.no/wep/

Autentisering
.htaccess
Børre Stenseth

Autentisering og sikkerhet

Hva
Beskytt sidene med passord

I en webapplikasjon er det ofte nødvendig å vite hvem som befinner seg i den andre enden av nettforbindelsen, enten for å kontrollere tilgang til en ressurs (autentisering og autorisering) eller for å holde oversikt over hva vedkommende har gjort (sesjonshåndtering). I denne modulen skal vi se på det første problemet.

Den enkleste (og ofte sikreste) måten å finne en brukers identitet er å bruke HTTP-protokollens støtte for brukerautentisering.

OBS: Autentisering alene ikke gir et sikkert system. Webtrafikk sendes vanligvis ukryptert, og det er i så fall trivielt for en angriper å plukke opp og lese dataene som blir sendt. Hvis autentiseringen foregår med HTTPs basic-metode sendes dessuten også brukernavn og passord i klartekst. Sensitive data må sendes kryptert ved hjelp av SSL. (Oppsett og bruk av SSL dekkes ikke her.)

Bruk av .htaccess

Hvis du ikke har administrasjonrettigheter på webserveren (dvs. ikke er root) er det enklest å sette opp autentisering vha. fila .htaccess i katalogen som skal tilgangsbeskyttes (.htaccess kan også brukes til mye annet nyttig, se f.eks. Apache-dokumentasjonen eller Comprehensive guide to .htaccess).

Her er en enkel oppskrift på tilgangsbeskyttelse av en katalog (med underkataloger). Dette innebærer at du må lage to filer: en fil (.htaccess) i den katalogen du vil passordbeskytte, og en fil (.htpasswd) utenfor html/htdocs-katalogen der du vil plassere passordet. Eksempelet er slik det tar seg ut for brukeren borres:

  1. Lag fila .htaccess med teksteditoren du foretrekker (pass på unix-format), tilsvarende dette:
        AuthUserFile /home/borres/autent/.htpasswd
        AuthName "Mine hemmelige filer"
        AuthType Basic
    
        require user bever
        
    Plasser fila i den katalogen du vil beskytte. Pass på at navnet på fila begynner med punktum (.htaccess).
  2. Koble deg til webserveren vha. SSH, og opprett en ny .htpasswd-fil med følgende kommando:
        htpasswd -c /home/borres/autent/.htpasswd bever
        
    Utelat -c dersom fila allerede finnes. Skriv inn passordet når du blir bedt om det (to ganger).
    Det er veldig viktig at .htpasswd-fila plasseres et sted der den ikke kan nås fra web. Plasser den gjerne i hjemmekatalogen, men aldri i htdocs/html med underkataloger. Fila vil nemlig inneholde bruker- og passordinformasjon, og sikkerheten svekkes betydelig dersom den kan leses direkte via web.
  3. Hvis du nå prøver å gå til katalogen vil du bli bedt om å skrive inn brukernavn og passord.

Sikkerhet

Som nevnt over gir ikke HTTP-autentisering noen stor grad av sikkerhet på egenhånd. Sikker, avlyttingsfri kommunikasjon forutsetter at den skjer kryptert (vha. SSL/HTTPS).

Referanser
  1. Apache dokumentasjonen:htaccess apache.org httpd.apache.org/docs/howto/htaccess.html 14-03-2010
  1. Comprehensive guide to .htaccess javascriptkit.com www.javascriptkit.com/howto/htaccess.shtml 14-03-2010
Vedlikehold
Audun Våler, 2004. Moderert februar 2005, Børre Stenseth
( Velkommen ) ( Sesjoner )