26 besökare, 1 medlem och 1 Student är online nu
Loopia

webdesign och HTML

lösenordsskydd med .htaccess

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

Test-login

klicka här för att logga in »

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 Anteckninga (Notepad) och de ska alltså inte ha något filtillägg (de får INTE ha tillägget .txt). Filerna ska ha namnen .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 webbhotell 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 kryptera lösenorden själv! Använd någon av tjänsterna .htaccess Tools Öppnas i nytt fönster (Open in new window)  eller www.webmaster-toolkit.com Öppnas i nytt fönster (Open in new window)  där du fyller i önskat användarnamn och 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 och 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 webblä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 använd 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 webbservern 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 webblä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

login för MEDLEM

klicka här för att logga in »

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


login för ADMINISTRATÖR

klicka här för att logga in »

Användarid: admin
Lösenord: admin

 

 

textfilen .htpasswd

Här anges användarnas namn och lösenord. OBS! 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 kryptera lösenorden själv! Använd någon av tjänsterna .htaccess Tools Öppnas i nytt fönster (Open in new window)  eller www.webmaster-toolkit.com Öppnas i nytt fönster (Open in new window)  där du fyller i önskat användarnamn och 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 och 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 webblä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örs-inloggningen 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>

Textfilerna skapar du i tex Anteckninga (Notepad) och de ska alltså inte ha något filtillägg (de får INTE ha tillägget .txt). Filerna ska ha namnen .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 webbhotell 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 Öppnas i nytt fönster (Open in new window)  (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 webbserver.

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 i guiderna om PHP »