sandbox >> smed linierne i min .htaccess, men billerne kan stadig nås med den direkte sti.
Synes godt om
Slettet bruger
28. september 2004 - 20:26#6
Så fjern den første af de 3 linier. Så risikerer du bare, at brugere, der af en eller anden grund ikke sender referer-information ikke kan komme til at se billederne.
Det hjælper vel ikke noget. Så længe mit domæne indgår i URL'en (www.example.com/images/001.jpg) vil billedet kunne tilgås, da requesten ikke bryder nogen regler.
Linien RewriteCond %{HTTP_REFERER} !^https?://www.example.com/.*$ [NC] ser ikke efter om den er en del af den nuværende adresse, men om den er en del af den henvisende sides adresse.
Måske skal du have denne med også:
RewriteEngine on
Og måske skal du lige se efter, om der i httpd.conf er noget, der forhindrer at du i det hele taget bruger RewriteEngine fra en .htaccess
Ja det er ærgeligt, så mister man den unikke testmulighed.
men eks. skulle virke fint, har det også selv kørende.
Men man skal være opmærksom på at det ikke er en god måde at hindre deeplinkning:
- Det er nemt at forfalske sin HTTP_REFERER - Der er nogle proxyservere og firewalls som fjerner denne HTTP_REFERER, så man dermed opnår at de ikke kan se billedet fordi de får forbidden. (hellere ikke via din egen side)
Men man skal lige spørge sig selv og tænke godt over det. Hvorfor vil jeg ikke have folk deeplinker til mine billeder? De kan downloade dem alligevel... Hvad er formålet ? og kan man styre det på anden måde.
Men hvordan tester du ? Hvad er det problemet er helt præcist?
Problemstilling: Private billeder i en mappe må kun vises til folk, der er logget ind. Billederne hentes frem vha. html/php. Login styrer jeg vha. php og ønsker ikke at anvende basic auth. Billederne må ikke kunne tilgås af folk, der ikke er logget ind - det kan de nu, hvis de kender den direkte sti.
Jeg håbede på, at man kunne begrænse adgangen vha. regler i .htaccess, således at billederne kun blev vist, hvis det var web-applikationen, der hentede dem frem. Når jeg anvender .htacces fjernes adgangen til billederne - men også fra web-applikationen, hvilket jo ikke er meningen.
Det nemmeste og mest sikre vil være at at bruge apaches password beskyttelse.
Du kan også lave en løsning med at du placerer billeder uden for webroot. eks hvis dine filer ligger i www/public_html så kan du ligge dine billeder i www/images
så kan du så hente dem via php: <?php header("Content-type: image/gif"); echo file_get_contents("/fulde/sti/til/din/folder/images/billede.gif"); ?>
Det er selvfølgelig et enkelt eks. med gif. Men det er en mulighed. så kan du tjekke om man er logget ind via php - og kune vise billedet hvis man er eller vise et no access billede hvis man ikke er.
Så er det helt umuligt at få fat i dine billeder uden for dit eget interface.
Du kan kombinere det på forskellige måder i php - meget komplekse urls. eller lign.
Men der findes ikke nogen apache måde du kan gøre det effektivt uden password beskyttelse.
Jeg kan ikke tilgå nogen mappe uden for web-roden. Dog har jeg brugt lidt af dit forslag, htm, til at løse problemet.
Jeg har lagt en .htacces fil i mappen med billeder, hvori der kun er adgang via. basic auth. Jeg henter så billederne ind i min web-applikation vha. php - lidt i stil med det du viser. Inden da checker jeg dog om personen der vil tilgå billedet er logget ind.
Hvis du smider et svar htm, så kan dig og sandbox dele pointene.
Det er jo også smart, for så har du jo selv mulighed for at se billederne uden om dit PHP-baserede system.
Synes godt om
Ny brugerNybegynder
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.