Det er skam ikke noget problem at lave sådan et system, så billederne ikke ligger i den mappe som hjemmesiden ligger i, og på den måde undgå at folk bare kan linke direkte til billederne.
laver du så systemet i PHP så kan du f.eks lave en fil som hedder image.php og så med et parameter vælge hvilket billed der skal vises. du kan så i image.php tjekke om brugeren er logget ind og og brugeren har købt adgang til det billed han ønsker vist.
Men som du sige så er S3 dyrt. men tro ikke at du kan finde en som kan kode dette system billigt, og skal du selv lave det så skal du være rimelig skrap til PHP/ASP/.NET.
Hej Michael !
Jeg kan sagtens lave den fil du omtaler som "image.php". Det er ikke det der er mit problem. Jeg ved jeg kan lægge billederne i en mappe med et underligt navn som ingen vil gætte, men hvad hvis nu nogen gætter navnet på denne mappe? Selvom du har gættet navnet på den mappe hvor billederne ligger, skal du stadig ikke kunne se billederne. Jeg ved at en .htaccess-fil kan nægte adgang til at få vist en directory-listing, men er det alt man behøver for at sikre sig?
Jeg er selv webudvikler, så jeg ved godt hvordan tingene hænger sammen på et website. Jeg skal bare være helt sikker på at jeg har taget højde for alle mulige angreb, hvis jeg planter en .htaccess-fil i den mappe hvor jeg opbevarer billederne der nægter at "crackeren" kan få vist en directorylisting og at jeg ikke linker direkte til billederne, men kører den over en anden php-fil, ligesom de gør på pcworld.dk
Men billederne er jo nødt til at ligge et eller andet sted på serveren :) Derfor vil de også have en url.
Nej.... Hvis vi antager at webside roden ligger i "server/mappe/www/" så ligger billederne måske i "server/mappe/billeder" og derved ligger de uden for webscope. Dvs. der ikke findes en url til billederne. Et eksempel er i mit nye system hvor billede med følgende url: http://admin.netopcom.dk/images/header_home.jpg faktisk ligger i denne mappe: e8980340-e1db-4376-8a67-8fb38498a84d/ee5d513b-0460-4cfc-a225-03e9bec0de2d.jpg men systemet sørger for at disse ting passer sammen.
Mathias Bak:
Jeg kan vel kryptere dem og smide dem i en database
Billederne skal ikke i en database, men det skal referencerne og du behøver heller ikke kryptere billederne. Du skal blot finde en der kan arbejde med virtuelle urls og som du kan forklare det for. Det er ikke noget der kræver en doktorgrad for at lave :)
Jeg har programmeret i over 27 år. Jeg har kodet i C, C++, Java, Delphi, Perl, JavaScript, C#, F#, VB.NET, ASP, Myresnak :D, Comal80 osv....
Ahh ! Det vidste jeg slet ikke ! Anede ikke det der med webscope.
Havde regnet med at starte på et webhotel hos one.com, men der kan du ikke placere filer og data uden for webscope. Jeg tror dog at jeg kan på unoeuro.com.
Men hvis jeg ligger billederne uden for webscope, hvordan kan jeg så hente dem op på siden til fremvisning?
Kan man gøre det på samme måde som alt andet der ligger i et lavere niveau, altså med med href="../imgs/fil.jpg", eller gælder der andre regler når det er uden for webscope?
Det er super fedt du gider at hjælpe mig. Jeg har virkelig søgt nettet tørt for en løsning, men det er jo svært hvis man ikke søger på det rigtige.
Med en blanding af PHP og .htaccess kan du godt beskytte dig helt og aldeles mod at forkerte får adgang til dine billeder. Du laver et PHP-script, som viser billedet vha. GDLib - men den viser kun det rigtige billede såfremt du er logget korrekt ind på den oprigtige ejer af billedet/eller som admin. Vha. .htaccess kan du lave en RewriteRule således, at det på papiret (billedets url-adresse) kommer til at se helt normalt ud, hvor man ikke kan se, at der rent faktisk bliver kaldt en PHP-fil frem for det direkte billede.
Skulle du have problemer med det ovenstående, eller ønsker en anden til at lave det, er du velkommen til at sende mig en PM.
Haha har skam aldrig læst "bogen for webudviklere", da jeg oparbejdet mine færdigheder ved at prøve mig frem. Du vil nok ikke betragte mig som webudvikler, men ved ikke lige hvad jeg ellers skal kalde det, "en fyr der kan kode en smule php og det andet der nu følger derefter" :)
Ok jeg forstår dit eksempel, så ImagePath skal være fra serverens rod, eller kan den også være relativ til filens placering?
Med en blanding af PHP og .htaccess kan du godt beskytte dig helt og aldeles mod at forkerte får adgang til dine billeder. Du laver et PHP-script, som viser billedet vha. GDLib - men den viser kun det rigtige billede såfremt du er logget korrekt ind på den oprigtige ejer af billedet/eller som admin. Vha. .htaccess kan du lave en RewriteRule således, at det på papiret (billedets url-adresse) kommer til at se helt normalt ud, hvor man ikke kan se, at der rent faktisk bliver kaldt en PHP-fil frem for det direkte billede.
Skulle du have problemer med det ovenstående, eller ønsker en anden til at lave det, er du velkommen til at sende mig en PM.
Tak for dit svar. Det er dog samme løsning som Niels lige har skrevet, dog med den ekstra .htaccess RewriteRule. Jeg tror jeg går efter Niels' løsning, da den sepererer billederne fra resten af websitet, hvilket er nice !
Niels:
ImagePath skal være eks: c:/imagebank/billeder/fed-bil.jpg
Ja det fik jeg fat i, men SKAL det være en absolut sti, eller kan den godt være relativ?
Men jeg kan vel ikke få lov at lave en absolut sti hvis jeg har lejet mig ind på et webhotel...? Eller kan man? Det afhænger måske af den enkelte udbyder?