Avatar billede hypofysen Nybegynder
20. april 2013 - 09:42 Der er 6 kommentarer

forhindre direkte adgang til mappe med billeder

jeg har min index.php fil i roden, og 2 mapper der hedder henholdsvis include og image.

I min index fil har jeg et img tag <img src="images/image.jpg:" />.

Hvordan kan jeg forhindre at man kan skrive www.minside.dk/images/image.jpg

jeg regner med at jeg skal bruge noget htaccess men hvad skal der stå i filen? har prøvet med deny from all men så kan billederne ikke vises på siden..
Avatar billede acore Ekspert
20. april 2013 - 09:56 #1
Det kan du ikke. Det har ikke noget med php at gøre. Det, du skriver, er en html kommando, som henter filen. Og derfor skal browseren have adgang til den fil.

Du kan gøre alle mulige krumspring, men i sidste ende tror jeg ikke, det er muligt.

Så løsningen er at leve med det. Du kan tilpasse billederne, så de ikke er større, end du skal bruge, og udstyre dem med copyright, vandmærke eller hvad ved jeg.
Avatar billede repox Seniormester
20. april 2013 - 10:17 #2
En af de mest anvendte metoder er at bruge .htaccess til at forhindre hotlinking.
http://www.hongkiat.com/blog/smarter-way-to-prevent-image-hotlinking-with-htaccess/

Men den er ikke 100% sikker, da den er baseret på referer headeren, som kan fakes. Men det er nok et af de bedre bud.
Avatar billede olebole Juniormester
20. april 2013 - 14:53 #3
<ole>

Som repox skriver, så kan HTTP-referer'en meget let fakes. Du kan lave et system med to servere 'foran hinanden' og sessions, men det er en ret kompleks løsning. En del dagblade brugte det for år tilbage af hensyn til artikeltekster - under/efter NewsBooster-sagen, hvor paranoiaen ramte hårdt og bredt. De har vist efterhånden alle indtaget en mere realistisk holdning til kopiering/ophavsret ogh virkeligheden.

Generelt må man sige, at billeder (eller andre materialer), der ikke må kunne kopieres, ikke har noget at gøre på WWW

/mvh
</bole>
Avatar billede arne_v Ekspert
21. april 2013 - 03:49 #4
Det er umuligt at forhindre kopiering af noget som er paa nettet.

Men du kan godt sikre dig at der skal hentes en af dine sider inden billedet kan hentes (hvorvidt siden bliver set er en anden sag).

Flyt billederne udenfor hvad der serves af din web server.

Stream billederne ud med et PHP script:

<img src="stream.php?img=foobar.jpg">

Lad stream.php checke om der er etableret en session.

Lad den side som skal hentes foerst etablere session.
Avatar billede acore Ekspert
22. april 2013 - 20:44 #5
Synes, at arne_v er "vinderen" her. Han anviser (son den eneste) en præcis og forholdsvis simpel løsning på lige præcis det, du spørger om.

Om det så er umagen værd at implementere, er en anden sag.
Avatar billede repox Seniormester
22. april 2013 - 20:49 #6
@acore: Super - det ville bare have været federe med din mening om "vinderen", hvis det havde været dit spørgsmål...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester