/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Undgå lagring af filnavne
Fra : Troels Jensen


Dato : 23-08-04 18:04

Jeg har lavet et billedgalleri i .asp, hvor siden med thumbnails er
beskyttet med adgangskode. Men selve billederne har jeg ikke kunnet
finde ud af at sikre med adgangskode.

Jeg arbejder nu på en løsning, hvor thumbnails linker til et andet
script (ex: /visfoto.asp?path=/billeder/foto1.jpg), som så afkræver
adgangskode og derefter viser billedet. Problemet er bare, at stien
bliver gemt i browseren. Jeg bruger følgende metatags, men det afhjælper
ikke problemet:

<META HTTP-EQUIV="expires" CONTENT="-1">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must revalidate">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">

Derfor:

1) Kan jeg undgå, at stien bliver lagret i computerens Temporary
Internet Files (altså ikke bare caching)?

2) Kender I en løsning, så selve billedfilerne kan beskyttes med
password, uden at man skal gå i krig med udbyderen (dvs. ved hjælp af et
script el.)?

På forhånd tak.

/Troels

--
http://www.troelsweb.dk

 
 
Anders Thorsen Holm (23-08-2004)
Kommentar
Fra : Anders Thorsen Holm


Dato : 23-08-04 18:28

Troels Jensen <tjREMOVE@THIStroelsweb.dk> wrote:

> Jeg har lavet et billedgalleri i .asp, hvor siden med thumbnails
> er beskyttet med adgangskode.

Jeg formoder, du benytter session-variable til at håndtere logins?

> Jeg arbejder nu på en løsning, hvor thumbnails linker til et andet
> script (ex: /visfoto.asp?path=/billeder/foto1.jpg), som så
> afkræver adgangskode og derefter viser billedet. Problemet er
> bare, at stien bliver gemt i browseren.

Jeg ved ikke, hvordan det gøres tilsvarende i ASP, men i PHP har du
mulighed for at at lave noget som det her:

<img src="getimage.php?file=/images/foto.jpg" ... />

Hvor getimage.php *henter* (ej linker) billedet og returnerer det
sammen med de rigtige headers.

Et sådan script kunne nemt udvides med samme loginfeature, som selve
siden med thumbnails. Er brugeren logget ind vises billedet. Hvis
ikke, kan der returneres et fejlbillede.

Skitseret:

<?php
....

if (loggedIn()) {
   $filename = $_GET['file'];    
   header("Content-Type: image/jpeg");
   header("Content-Length: " . filesize($filename));
   readfile($filename);
}
else {
   $filename = "/images/notloggedin.jpg";
   header("Content-Type: image/jpeg");
   header("Content-Length: " . filesize($filename));
   readfile($filename);
}
?>

> Jeg bruger følgende
> metatags, men det afhjælper ikke problemet:
>
> <META HTTP-EQUIV="expires" CONTENT="-1">
> <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must
> revalidate"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-store">

De har kun betydning for om billederne gemmes i cachen til fremtidig
brug - iøvrigt behøver klienterne ikke at respektere sådan
meta-information, svjv. De forhindrer altså ikke brugeren at gå ind
på en given adresse.

> 1) Kan jeg undgå, at stien bliver lagret i computerens Temporary
> Internet Files (altså ikke bare caching)?

Nej. Når brugeren ser billedet i sin browser, er det i virkeligheden
en kopi, der er hentet ned på computeren.

> 2) Kender I en løsning, så selve billedfilerne kan beskyttes med
> password, uden at man skal gå i krig med udbyderen (dvs. ved hjælp
> af et script el.)?

Jeg har forklaret hovedtrækkene ovenfor. Hvordan det skal gøres i
ASP kan andre fortælle dig i den dertil beregnede gruppe:
dk.edb.internet.webdesign.serverside.asp, som jeg har sat FUT til
(svar på dette indlæg havne i den gruppe).

--
Anders Thorsen Holm, BSc i datalogi-multimedier.

Jeg søger fuldtidsjob i eller nær Århus - gerne studierelevant,
men ingen betingelse. Læs mit CV: http://www.thorsenholm.dk/cv/

Troels Jensen (23-08-2004)
Kommentar
Fra : Troels Jensen


Dato : 23-08-04 18:43

Anders Thorsen Holm wrote:

> Jeg formoder, du benytter session-variable til at håndtere logins?

Jep.

> Jeg ved ikke, hvordan det gøres tilsvarende i ASP, men i PHP har du
> mulighed for at at lave noget som det her:
[snip]

Jeg bruger samme ordning, bare i asp. Jeg har allerede nøjagtig den
løsning, du skitserer. Mit problem er:

- Selvom der er password-beskyttelse på visfoto.asp, kan man stadig se,
hvilket billede, der er blevet vist (for eksempel ligger '/visfoto.asp?
path=/billeder/feriebilleder/foto1.jpg' i temporary internet files) og
så taste selve billedstien ind manuelt. Og dermed er password-
beskyttelsen uden reel virkning.

Kan man løse det problem?

/Troels

Anders Thorsen Holm (23-08-2004)
Kommentar
Fra : Anders Thorsen Holm


Dato : 23-08-04 19:35

Troels Jensen <tjREMOVE@THIStroelsweb.dk> wrote:

> Jeg bruger samme ordning, bare i asp. Jeg har allerede nøjagtig
> den løsning, du skitserer.

Okay.

> Mit problem er:
> - Selvom der er password-beskyttelse på visfoto.asp, kan man
> stadig se, hvilket billede, der er blevet vist

Ja, besøgte sider tilføjes browserens historik, som man
(forhåbentlig) ikke kan pille ved.

> (for eksempel
> ligger '/visfoto.asp? path=/billeder/feriebilleder/foto1.jpg' i
> temporary internet files) og så taste selve billedstien ind
> manuelt.

Man burde blive afkrævet brugernavn og password alligevel. Er du
sikker på, at du har lukket browseren (i dette tilfælde IE) helt
ned (*alle* vinduer)? Hvis ikke, har du så sørget for at
slette/nulstille alle sessionvariable tilknyttet pågældende login?

Jeg har lige forsøgt mig med et tilsvarende system (ganske vist med
..htaccess og .htpasswd til at passwordbeskytte en mappe på en
Apache server). Uden korrekt brugernavn og password kan man *ikke* få
vist billedet - selv hvis man copy-paster adressen vist i
temporary internet files.

Du burde f.eks. ikke kunne få adgang til dette billede uden at være
logget ind:

<http://work.thorsenholm.dk/thumbnail/result.php?file=artefakter/lib2/lib2a/hands_t.jpg >

Nu håber jeg, det virker efter hensigten

--
Anders Thorsen Holm, BSc i datalogi-multimedier.

Jeg søger fuldtidsjob i eller nær Århus - gerne studierelevant,
men ingen betingelse. Læs mit CV: http://www.thorsenholm.dk/cv/

Troels Jensen (23-08-2004)
Kommentar
Fra : Troels Jensen


Dato : 23-08-04 19:47

Anders Thorsen Holm wrote in dk.edb.internet.webdesign.serverside.asp:

> Ja, besøgte sider tilføjes browserens historik, som man
> (forhåbentlig) ikke kan pille ved.

Nej, den løsning duer jo nok ikke, så...

> Man burde blive afkrævet brugernavn og password alligevel. Er du
> sikker på, at du har lukket browseren (i dette tilfælde IE) helt
> ned (*alle* vinduer)? Hvis ikke, har du så sørget for at
> slette/nulstille alle sessionvariable tilknyttet pågældende login?

Nej, fordi selve mappen med billederne er ikke beskyttet. Så vidt jeg
ved findes der ikke noget, der minder om .htacces til Windows-servere.
Men jeg ved heller ikke ret meget om det her, så gør mig endelig klogere


>
> Jeg har lige forsøgt mig med et tilsvarende system (ganske vist med
> .htaccess og .htpasswd til at passwordbeskytte en mappe på en
> Apache server). Uden korrekt brugernavn og password kan man *ikke* få
> vist billedet - selv hvis man copy-paster adressen vist i
> temporary internet files.
>
> Du burde f.eks. ikke kunne få adgang til dette billede uden at være
> logget ind:
>
> <http://work.thorsenholm.dk/thumbnail/result.php?file=artefakter/lib2/lib2a/hands_t.jpg >

Nej, det kan jeg ikke.

--

/Troels

http://www.troelsweb.dk

Anders Thorsen Holm (23-08-2004)
Kommentar
Fra : Anders Thorsen Holm


Dato : 23-08-04 20:04

Troels Jensen <tjREMOVE@THIStroelsweb.dk> wrote:

> Nej, fordi selve mappen med billederne er ikke beskyttet.

Aha! Se, det var jo en væsentlig oplysning
Du har altså mappen med billeder liggende i public_html, eller hvad den
end måtte hedde på dit system, sammen med ASP-filer osv.?

..../public_html/billeder/

Den løsning, jeg præsenterede før, gør brug af billeder, der ligger
*udenfor* public_html. Altså er der på serveren en sådan mappestruktur:

..../public_html/
..../billeder/

Når man så tilgår f.eks.

<http://www.dinserver.dk/dinmappe/getimage.php?file=/billeder/foo.jpg>

vil getimage.php læse fra en fil, der ligger udenfor public_html.
Men kun hvis man er logget ind!

Det er ikke alle webhoteller, der tillader den slags, men du kan
jo lade det komme an på en prøve.

>> Du burde f.eks. ikke kunne få adgang til dette billede uden at
>> være logget ind:
[snip]
> Nej, det kan jeg ikke.

Pyha

--
Anders Thorsen Holm, BSc i datalogi-multimedier.

Jeg søger fuldtidsjob i eller nær Århus - gerne studierelevant,
men ingen betingelse. Læs mit CV: http://www.thorsenholm.dk/cv/

Anders Thorsen Holm (23-08-2004)
Kommentar
Fra : Anders Thorsen Holm


Dato : 23-08-04 19:43

Troels Jensen <tjREMOVE@THIStroelsweb.dk> wrote:

> - Selvom der er password-beskyttelse på visfoto.asp, kan man
> stadig se, hvilket billede, der er blevet vist (for eksempel
> ligger '/visfoto.asp? path=/billeder/feriebilleder/foto1.jpg' i
> temporary internet files) og så taste selve billedstien ind
> manuelt.

Hvordan ser billedstien ud? Ligger billederne på
http://www.dinserver.dk/dinmappe/billeder/ ?

I så fald er det jo selvklart nemt at få adgang til de enkelte billeder
ved blot at indtaste

http://www.dinserver.dk/dinmappe/billeder/feriebilleder/foto1.jpg

- særligt hvis du ikke har mulighed for at passwordbeskytte en mappe
direkte. Med en Apache-server havde det været en smal sag - jeg ved
ikke, hvordan det fungerer på andre typer servere.

Eller ligger billederne uden for webregi?
I så fald burde du ikke opleve dette problem med førnævnte
passwordkontrol, hvis du vel at mærke sørger for at nulstille
sessionvariablene (og i øvrigt husker at lukke samtlige
browservinduer).

--
Anders Thorsen Holm, BSc i datalogi-multimedier.

Jeg søger fuldtidsjob i eller nær Århus - gerne studierelevant,
men ingen betingelse. Læs mit CV: http://www.thorsenholm.dk/cv/

Kasper Christensen (23-08-2004)
Kommentar
Fra : Kasper Christensen


Dato : 23-08-04 19:57

Anders Thorsen Holm wrote:


> - særligt hvis du ikke har mulighed for at passwordbeskytte en mappe
> direkte. Med en Apache-server havde det været en smal sag - jeg ved
> ikke, hvordan det fungerer på andre typer servere.

Hej Anders din gæve mand.

Nå, men svaret er egentlig til Troels, så du behøver ikke læse videre

Jeg har ikke læs hele tråden, men bare lige det ovennævnte.

Hvis du selv har din side hostet på din egen server (Læs din private
pc), kan du bare højreklikke på mappen billeder og vælge egenskaber.

Herefter kan du bare sætte egenskaberne op, så Guestkontoen ikke er
tilgængelig der. Så skal folk indtaste brugernavn og kode. Dette er så
vidt jeg husker, da det er 6 mdr siden jeg har rodet med det.

--

Multimediedesigner
Kasper Christensen
http://www.kasperc.dk

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste