webForumDet fria alternativet

perl-pgm som anropar .htaccess-skyddade filer

6 svar · 304 visningar · startad av Gorekex

GorekexMedlem sedan okt. 200179 inlägg
#1

Hejsan!

Har ett litet access-problem på min nya hemsida som jag hoppas ni kan hjälpa mig med!

Jag har ett perl-program som skapar mina webb-sidor genom att skapa ett "ramverk" och inkludera andra html-filer. Nu skulle jag vilja att apaches vanliga lösenordshantering fungerar för de filer som mitt perl-script läser från kataloger som är skyddade med .htacces. Går det eller är det som jag misstänker så att perl-scriptet har obegränsad access till alla kataloger pga att det ligger i cgi-bin katalogen? Skriver jag in url:en till sidorna direkt så får jag ju upp inloggningsrutan...

Eller finns det något annat smidigt sätt att lösa access-hanteringen? Vill helst att apachen sköter inloggningen åt mig så att jag slipper hantera användare och lösenord själv...

¤Gorekex

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Om du läser in filerna via perl och sedan skickar tillbaks dem till användaren så struntar Perl blankt i .htaccess. Så länge som skyddet inte sitter i filsystemet så är .htaccess en fil som vilken annan som hellst, och du måste således sköta inloggningen själv. Skapar du däremot en frameset varifrån sidorna via html länkas in via http så kommer apache att sköta inloggningen eftersom det då är en sak mellan webbläsaren och apache där perl ligger helt utanför.

GorekexMedlem sedan okt. 200179 inlägg
#3

Jo, ungefär så har jag redan räknat ut att det fungerar... :(
Finns det inga funktioner i perl som använder sig av själva filsystemets kommandon för åtkomst av filer? T ex som motsvarar en "dir/ls" vid "prompten". Eller något som säger åt perl att kontrollera behörigheten på filer?
Jag vill gärna behålla lösningen jag har idag med ett perlscript som skapar alla sidorna så att jag slipper använda frames och mallar...

¤Gorekex

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Visst använder perl sig av filsystemet, men grejen är att rättigheterna inte sitter där i det här fallet. Apache är konfigurerad att i det här fallet läsa .htaccess-filen och ta reda på hur användarvalideringen skall skötas och var användar-informationen finns, ofta i en .htpasswd-fil. I det här fallet är det alltså Apache som sköter detta helt själv. Det har ingenting med filsystemet eller perl att göra. Du får alltså göra samma sak själv från perl-scriptet.

GorekexMedlem sedan okt. 200179 inlägg
#5

Ok, det finns alltså ingen annan lösning än att själv kontrollera behörigheten om jag vill behålla den här lösningen...

Det smidigaste alternativa sättet jag kommit på hittills är att länka till en .shtml-sida som ligger i den skyddade katalogen som sedan i sin tur "anropar" perl-scriptet. Låter det som en vettig lösning? (är nybörjare på både perl och apache så jag är tacksam för alternativa lösningar om den här inte är lämplig)

Tack för hjälpen Jojoxx!

¤Gorekex

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Du kan som sagt via scriptet göra samma sak som Apache gör. Sedan får du köra scriptet som ett s.k. nph-script (No Parsed Header) för att kunna använda http-inloggning, men detta kan vara lite knöligt att konfigurera i Apache eftersom denna information (inloggad användare) ofta inte går att läsa default av säkerhetsskäl. SSI i detta fall är en mycker enklare lösning, och kan du använda det så är det det sagt enklare.

GorekexMedlem sedan okt. 200179 inlägg
#7

Jag använder space2u för närvarande och vet inte hur de har konfat sin apache men misstänker att de har rätt hög säkerhet... Så enkelt som möjligt som löser mitt problem är vad jag vill åt så i så fall kör jag vidare på SSI-spåret!

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)