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:cGyUX9QugYMgEIndtast 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:
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
- Lad os sige at stien til roden af dit webhotel er /usr/local/www/dit-domæne.dk/ (fundet ved at uploade fil som beskrevet ovenfor).
- Og lad os sige at din htpasswd-fil er uploadet til http://dit-domæne.dk/admin/.htpasswd.
- Dermed er den fulde sti til htpasswd-filen /usr/local/www/dit-domæne.dk/admin/.htpasswd.
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.
English
Foretrukne
Log ind
Index [scripts]