Passordbeskytting av websider
Generelt
Du kan normalt ikke beskytte et enkelt dokument fra innsyn [1] men du kan beskytte en hel katalog slik at alle som prøver å aksessere et dokument i denne katalogen, eller en underkatalog, vil bli spurt om brukernavn og passord.
Dette gjør du ved å legge en fil ved navn .htaccess i den katalogen du vil sperre. I denne fila må du blant annet spesifisere hvilke brukere som skal ha tilgang til dokumentet og hvilken passordfil passordene skal hentes fra. Passordfila må lages med et program som heter htpasswd2.
Fordi at webserveren må kunne lese innholdet i dokumentene den skal sende ut, må disse være dessverre være lesbare for alle. Dette innebærer at et passordbeskyttet dokument kun er beskyttet fra innsyn gjennom webserveren. Dette betyr igjen at andre brukere kan lese innholdet i dokumentene dine ved å gå direkte inn på public_html katalogen din (og underkatalogene). Med andre ord: Passordbeskyttelsen gjelder kun for nedlasting gjennom webserveren.
.htaccess
Denne fila har betydning i flere sammenhenger, blant annet når du skal lage aksesskontroll på kataloger, eller for eksempel i forbindelse med CGI-scripting.
For at denne fila skal virke må alle ha leserettigheter. Dette gjør du ved å skrive følgende i et terminalvindu.[2]
chmod a+r .htaccess
Syntaks i .htaccess:
For å legge inn aksesskontroll må du legge inn følgende linjer i .htaccess (som plasseres i den katalogen du vil kontrollere). Hvis fila ikke eksisterer, må den opprettes først.
AuthUserFile /path/til/fila/navn.paafil
Der path/til/fila er full path til fila du lager med htpasswd Passordfila må ligge på webområdet. For å være på den sikre siden bør du angi stien til denne fila som /web/folk/bruker/passordfil i stedet for /home/home??/??/bruker/public_html/passordfil. (Sistnevnte fungerer bare dersom andre (other) har tilgang på hjemmekatalogen din.)
AuthGroupFile /path/til/fila/navn.paafil
Denne linja spesifiserer hvilken gruppepassordfil som skal brukes. Denne kan godt være /dev/null, tilsvarende ingenting, men den må være der.
AuthName NavnPaaPopUp
Der NavnPaaPopUp er et passende navn på den boksen der man skal skrive inn navn og passord.
AuthType Basic
Denne må være med.
<Limit GET POST>
Denne linja starter blokka med alle brukere som kan bruke denne katalogen. Blokka avsluttes med
</Limit>
Inne i denne blokka skal du ha linjer for hver bruker, som ser ut som dette:
require user whatever
Der whatever er brukernavnet på en bruker som skal ha adgang. Hver bruker må ha en slik linje og de må ha et passord i passordfila som matcher brukernavnet. Du kan eventuelt bruke
require valid-user
Eksempel på .htaccess:
Her er eksempel på en .htaccess-fil som gir en passordboks med teksten 'EnLitenTest'. Brukerne 'ditt' og 'datt' vil kunne logge inn, og passordene deres sjekkes mot filen webpasswd som ligger under /web/folk/bruker/webpasswd
AuthUserFile /web/folk/bruker/webpasswd AuthGroupFile /dev/null AuthName EnLitenTest AuthType Basic <Limit GET POST> require user ditt require user datt </Limit>
htpasswd2
For å lage en passordfil som webserveren kan forstå må du bruke programmet htpasswd2 i UNIX. Logger man seg inn på login.stud.ntnu.no bruker du kommandoen htpasswd2. Skriv bare htpasswd2 for å få opp en beskrivelse for hvordan en bruker kommandoen. Bruker en solarislogin.stud.ntnu.no må man skrive kommandoen htpasswd istedet. Dette programmet krypterer passordene og legger de til passordfila. Du bør legge passordfila i en egen katalog for å gjøre det så sikkert som mulig. Denne katalogen må bare være leselig for deg og besøkbare for andre. (Bruk "chmod 701" etc for å oppnå dette.) Selve fila må være lesbar for webserveren (bruk "chmod o+r fil"), og hjemmekatalogen må være tilgjengelig for webserveren (bruk "chmod o+x ~/.").
NB! Siden passordet på den vanlige webserveren overføres i klartekst skal man ikke bruke samme passord som man har på brukerkontoen sin.
htpasswd2 brukes på denne måten:
htpasswd2 navn-paa-passordfil brukernavn
navn-paa-passordfil er navn og path til passordfila di. brukernavn er navnet på den brukeren du skal legge til.
Dersom skal opprette en ny passordfil må du legge til en -c til kommandoen, slik:
htpasswd2 -c navn-paa-passordfil brukernavn
Når du starter htpasswd2 vil programmet spørre om passordet til brukeren to ganger og så kryptere det ned til fila. Hver bruker som skal ha tilgang til den katalogen du beskytter må ha et passord i passordfila. Alle legges inn på samme måten.
Eksempel:
Baserer seg på at .htaccess er som beskrevet ovenfor:
cd ~/public_html - for å komme til webkatalogen
mkdir etc - lager katalog for passordfil
chmod 701 etc - gir tilgang til katalog
htpasswd2 -c etc/webpasswd ditt - oppretter passordfil og legger til bruker ditt
chmod o+r etc/webpasswd - gir tilgang til fila
Fotnoter
[1]: Du kan beskytte enkeltfiler også, men det blir litt for avansert til å beskrive her. Se Apache sin dokumentasjon for hvordan du gjør dette.
[2]: Hvis du ikke har en egen terminalklient kan du bruke en Java terminalklient
| Språk: | Kommentarer: | 0 | Aid: | 154 | Brukervurdering: |
|
|
| Sist oppdatert: | 2006-06-21 | Forfatter: | harahauk | Lest: | 12709 ganger |