Gillar du den här guiden? Vill du att vi ska fortsätta göra fler guider? - läs mer här » 

skriv ut »

lösenordsskydd med .htaccess

Om din webplats ligger på en webserver med programvaran Apache webserver kan du lösenordskydda websidor genom att använda Apaches inbyggda funktioner. Principen liknar lösningar med ASP som ju kräver en Microsoft webserver. För att skydda vissa sidor lägger du en textfil i samma mapp som websidorna. I textfilen anger du vilka som ska ha tillgång till sidorna och deras lösenord.

Prova att logga in på den lösenordsskyddade sidan!

klicka här »

Användarid: test
Lösenord: test

Metod 1:
Alla användare har tillgång till samma sidor.

Den enklaste lösningen ger alla användare tillgång till samma sidor och använder två textfiler: .htpasswd och .htaccess

Textfilerna skapar du i tex Anteckningar/Notepad och den ska alltså inte ha något filtillägg (den får inte ha tillägget .txt) och bara ha namnet .htaccess och .htpasswd och vara i rent ASCII-format. Du lägger textfilen .htaccess i samma mapp som de sidor du vill skydda. Var noga med att ange den absolut rätta sökvägen som ofta inte är den du ser när du är uppkopplad via FTP-klienten... Kolla med ditt webhotell om du är osäker.

textfilen .htpasswd

Textfilen ska innehålla de användare som ska kunna logga in på din sida. Här anges användarnas namn och lösenord. Namnen på dina användare anger du själv men lösenorden måste anges i krypterad form och utan mellanslag. Exempel:

bengt:90XmOcFu5bCAk
anna:16KOgN/JZkI..
lisa:50/sE59wahjPU
jonas:672qXji0MU.wU

OBS! Du kan inte själv kryptera lösenorden. Använd istället någon av tjänsterna mirage.golden.net » eller Carambole » där du fyller i användarnamn och önskat lösenord och får ett krypterat lösenord att klippa och klistra in i texfilen .htpasswd
OBS! När användarna själva ska logga in så gäller det "riktiga" lösenordet som du eller de själva valt. Tänk på att användarid och lösenord är "case sensitive" och alltså måste anges exakt rätt avseende versaler/gemener. Textfilen .htpasswd lägger du inte i samma mapp som .htaccess och inte heller i en undermapp till den. Helst ska du lägga filen i en mapp som inte går att komma åt via webläsaren.

textfilen .htaccess

Här anges i första hand sökvägen till den fil som innehåller användare och lösenord (.htpasswd). Även meddelandet som ska synas i inloggningsrutan kan du ange här.

AuthUserFile /hela/sökvägen/till/.htpasswd
AuthName "Skyddade sidor!"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

OBS! Använd inga blanksteg i sökvägen. Byt istället namn på mappen om den innehåller blanksteg eller understrykningsstreck.

En sökväg med mappnamnet:
/min mapp/.htpasswd

ska istället vara:
/min_mapp/.htpasswd

eller
/minmapp/.htpasswd

VIKTIGT! .htaccess måste överföras till webservern i ASCII-format och inte BINÄRT (Binary mode). Dessutom kan du behöva ändra rättigheterna till CHMOD 644 eller (RW-R--R--).

OBS! När du testar lösenordsfunktionen kan du behöva stänga och öppna webläsaren på nytt om du vill se inloggningsrutan igen. En godkänd inloggning är aktiv under hela arbetspasset och då visas inte inloggningsrutan på nytt annars!

Metod 2:
Olika användargrupper har tillgång till olika sidor

Med den här metoden kan du tilldela olika användargrupper tillgång till olika sidor.

Grunden är enligt tidigare metod ovan men en tredje textfil tillkommer: .htgroup

Den här lösningen ger användare tillgång till olika sidor och använder tre textfiler:
.htpasswd
.htaccess
.htgroup

Logga in på medlemssidan som tillhör gruppen "medlemmar":

klicka här »

Användarid: gäst
Lösenord: gäst


Logga in på administratörssidan som tillhör gruppen "admin":

klicka här »

Användarid: admin
Lösenord: admin

textfilen .htpasswd

Här anges användarnas namn och lösenord. OBS! Att lösenorden måste anges i krypterad form och utan mellanslag.

bengt:90XmOcFu5bCAk
anna:16KOgN/JZkI..
lisa:50/sE59wahjPU
jonas:672qXji0MU.wU
guest:65QNtGmF786jo
tony:40CGlCYpsvPn6

OBS! Du kan inte själv kryptera lösenorden. Använd istället någon av tjänsterna mirage.golden.net » eller Carambole » där du fyller i användarnamn och önskat lösenord och får ett krypterat lösenord att klippa och klistra in i texfilen .htpasswd - OBS! När användarna själva ska logga in så gäller det "riktiga" lösenordet som du eller de själva valt. Tänk på att användarid och lösenord är "case sensitive" och alltså måste anges exakt rätt avseende versaler/gemener. Textfilen .htpasswd lägger du inte i samma mapp som .htaccess och inte heller i en undermapp till den. Helst ska du lägga filen i en mapp som inte går att komma åt via webläsaren.

textfilen .htgroup

Här anges användargrupper och medlemmar. Ange de olika grupperna på olika rader.

medlemmar: bengt anna lisa jonas
guests: guest
admin: tony

textfilen .htgroup lägger du i samma mapp som .htpasswd

textfilen .htaccess

Här anges i första hand sökvägen till den fil som innehåller användare och lösenord (.htpasswd). Även meddelandet i inloggningsrutan kan du ange här.

AuthUserFile /hela/sökvägen/till/.htpasswd
AuthGroupFile /hela/sökvägen/till/.htgroup
AuthName "Skyddade sidor!"
AuthType Basic
<Limit GET>
require group medlemmar
</Limit>

OBS! Det behövs alltså en .htaccess-fil för varje mapp som ska skyddas. I .htaccess anges vilken grupp som har tillgång till mappen. Så här kan tex Administratörsinloggningen i exemplet ovan se ut:

AuthUserFile /hela/sökvägen/till/.htpasswd
AuthGroupFile /hela/sökvägen/till/.htgroup
AuthName "Administrator!"
AuthType Basic
<Limit GET>
require group admin
</Limit>

Textfilen skapar du i tex Anteckningar/Notepad och den ska alltså inte ha något filtillägg (den får inte ha tillägget .txt) utan bara ha namnet .htaccess och vara i rent ASCII-format. Du lägger textfilen i samma mapp som de sidor du vill skydda. Var noga med att ange den absolut rätta sökvägen som ofta inte är den du ser när du är uppkopplad via FTP-klienten... Kolla med ditt webhotell om du är osäker. OBS! Använd inga blanksteg i sökvägen. Byt istället namn på mappen om den innehåller blanksteg eller understrykningsstreck.

En sökväg med mappnamnet:
/min mapp/.htpasswd

ska istället vara:
/min_mapp/.htpasswd

eller
/minmapp/.htpasswd

lösenord med programmet htpasswd.exe

Om du får problem med lösenorden som genereras med tjänsterna för passwordgenerator ovan kan du istället göra dem själv med Apache's eget program htpassw.exe som du kör i Kommandotolken. Det innebär att du jobbar i DOS-läge och då krävs lite grundläggande kunskaper i DOS (som att tex förflytta sig till rätt mapp). Hämta programmet htpasswd.exe » (36 Kb) och kör det från Kommandotolken (DOS-prompten).

Windows kommandotolk hittar du någonstans i Start-menyn:

Du kan också starta den med olika kommando beroende på version: cmd.exe eller command.exe. När du kör programmet htpasswd ser du vilka växlar som kan användas. I exemplet nedan ligger programfilen "htpasswd.exe" i mappen "htpasswd":

  1. Skapa en ny lösenordsfil med namnet .htpasswd och ange samtidigt det första användarnamnet och lösenordet med kommandot htpasswd -cb

    I exemplet nedan anges filnamn (.htpasswd) användarID (bengt) och lösenord (snuttegubben):
  2. Lägg till nya användare och lösenord med kommandot htpasswd -b



    OBS! Använd inte växeln -c igen då det skapar en ny fil som ersätter den gamla!
  3. Öppna den nya lösenordsfilen .htpasswd i Notepad/Anteckningar:

    Mappen med den fil som skapades:

    Filen med användarnamnen och lösenorden:
  4. Byt lösenord för en befintlig användare med kommandot htpasswd - n

    I exemplet nedan byts Bengt's lösenord ut:

TIPS! Om du inte har behov av så hög skyddsnivå kan lösenord med javascript » vara ett alternativ istället. Säkerheten är betydligt lägre men de är enklare att administrera och körs direkt i webäsaren och är alltså inte beroende av programvaran Apache webserver.

Om du använder PHP kan du anpassa dina inloggningssidor som du vill och även ange flera användare och lösenord i en MySQL-tabell. Läs mer om login och lösenordsskydd med PHP och MySQL i guiden PHP exempel »