On Sat, 28 May 2005 03:14:36 +0200, Benny Nissen <news@bennynissen.dk>
wrote:
>> For det første er vi i PHP-gruppen, så PHP-specifikke løsninger ville
>> være oplagt. Jeg ved godt at nogle folk er glade for Apache, men det
>> er stadigvæk upassende med en Apache-specifik løsning (for ikke at
>> tale om Apaches uhensigtsmæssigheder mht. .htaccess-filer og absolutte
>> stier).
>Hvilke uhensigtmessigheder ?
Idet .htaccess er rekursiv, og altså kan gælde i flere underkataloger,
giver relative stier ikke mening, og der kræves derfor en absolut sti
til .htpasswd-filen.
En henvisning i stil med:
AuthUserFile .htpasswd
eller
AuthUserFile ./.htpasswd
... vil få Apache til at tjekke filen i sit eget basedir. Fra
errorloggen:
Could not open password file: /etc/apache/.htpasswd
Derfor bliver man nødt til at bruge absolutte stier, der hverken
overlever skift til ny udbyder eller blot at udbyderen flytter rundt
på brugerens DocumentRoot.
En simpel løsning kunne være, at alle relative stier expandes ud fra
lokationen af .htaccess-filen. En anden løsning kunne være muligheden
for variable. Af hvad jeg ved, er ingen af mulighederne endnu til
stede i Apache.
..htpasswd-filerne er heller ikke at være specielt portable, idet de
baserer sig på det aktuelle systems crypt()-rutine, alternativt
Apaches MD5-version.
>> For det andet giver det en stor ufleksibilitet i forhold til fx at
>> lade brugerne kunne skifte deres kodeord, tilknytte informationer til
>> et login, etc.
>Hvis det et en enkelt admin, der skal have adgang er det vel næppe et
>problem.
Det behøver det ikke at være, nej.
>Synes du det er mere fleksiblet med $_SESSION['bruger'] på alle siderne ?
Nej, men det ville jo være dårlig PHP-kode
Jeg antager, at man i øvrigt skal hive fat i en håndfuld funktioner,
m.m., så man alligevel skal include relevante filer ind. Her er det
intet problem at indlede sine scripts med en enkelt include eller
lignende.
I det omfang, at det ikke blot er php-scriptet, men øvrige ressourcer
(billeder, etc.), der skal gemmes bag password-beskyttelse, så er jeg
enig i at man bør benytte webserverens egne muligheder.
--
- Peter Brodersen