PHP-scripts

Mange hits?

Hits : 141029
Hits dag : 44
Online : 1

Base64-kryptering til passwordbeskyttelse med .htaccess og .htpasswd

Her kan du krypterer passwords til htpasswd-fil til passwordbeskyttelse med htaccess. Denne funktionalitet er standard på Apache-servere og kan bruges i alle almindelige browsere. Grunden til at passwords skal krypteres er at de da ikke vil blive sendt eller opbevaret i klartekst.

Som eksempel med brugernavn »brugernavn« og password »password« ville følgende linie skulle bruges i din htpasswd-fil:

.htpasswd

brugernavn:cGyUX9QugYMgE

Indtast brugernavn og password og klik på ‘kryptér’ i følgende formular. Derved udskrives den linie du skal indsætte i din htpasswd-fil. Flere brugere kan tilføjes på en ny linie for hver.

Indtast dit brugernavn og password her:

Kryptér password til htpasswd



NB. Ingen brugernavne eller passwords opbevares, misbruges eller videregives.

PHP-koden der krypterer passwordet kan ses her:

Anvendt kode

<?php echo crypt("password"base64_encode("password")); ?>

Hvordan bruges passwordbeskyttelse med htaccess?

Din htaccess-fil skal indeholde følgende linier og placeres i den mappe som ønskes beskyttet:

.htaccess

AuthName "Skriv titel på beskyttelsen her"
AuthType Basic
AuthUserFile /fuld/sti/til/.htpasswd

require valid-user

Hvis der kun ønskes enkelte filer i mappen beskyttet fremfor hele mappen, udskiftes linien require valid-user med følgende:

.htaccess (fortsat)

<Files filnavn01.htm>
  require valid-user
</Files>

Eventuelt kan der tilføjes flere restriktioner og disse kan også angives for specifikke brugere. Der kan indsættes for lige så mange filer der ønskes.

.htaccess (fortsat)

<Files filnavn02.jpg>
  require user brugernavn01 brugernavn02 ...
</Files>

Sti til htpasswd i htaccess

For at password-beskyttelsen kan fungere er det vigtigt at angive den korrekte fulde sti til htpasswd-filen på linien med AuthUserFile i htaccess-filen. Den fulde sti til roden af dit webhotel betyder det bibliotek på webserveren hvorpå din hjemmeside ligger (altså det bibliotek på serveren man kommer til ved at besøge http://www.dit-domæne.exmaple/). Stien kan findes ved at uploade en php-fil med følgende indhold til din webserver og rekvirere filen i en browser:

Fuld sti til dit webhotel (f.eks. »sti.php«)

<?php echo $_SERVER['DOCUMENT_ROOT']; ?>

Stien opnået med ovenstående skal tilføjes de mapper du muligvis har uploadet htpasswd filen til på din webserver. Se følgende eksempel:

Eksempel

Dvs. at du i din htaccess-fil skal have en linie der med eksemplet er:
AuthUserFile /usr/local/www/dit-domæne.dk/admin/.htpasswd

NB: husk at filerne skal navngives som .htaccess hhv. .htpasswd. Dvs. at de skal starte med et punktum. Glemmer man dette vil passwordsystemet ikke fungere. Punktummet som prefix betyder skjult fil på Unix-lignende systemer. Hvis filerne navngives korrekt kan de ikke ses af brugere af websitet og vil udløse en »Fejl 403 - Adgang Forbudt« hvis forsøgt rekvireret i en browser.


Måske kan følgende side også have interesse: HTTP authentication with PHP.

» Til toppen