[php] Beveiligen foto's in map

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick

nick

05/12/2006 11:33:00
Quote Anchor link
hallo, ik heb een website waarop gebruikers foto's kunnen kopen.

mocht het zo zijn dat een gebruiker een foto heeft gekocht of de eigenaar is dan is

$locatie = goede kwaliteits foto's map

als niet heeft gekocht of niet eigenaar is

$locatie = slechte kwaliteits foto's map

Dit werkt allemaal fantastisch.

Ik had een pagina gemaakt die alle foto's stuk voor stuk controleerd en zo in de link gezet:

<img src="makejpg.php?kind=l&picID=3453434">

Dit werkte perfect, zo wist de gebruiker nooit in welke map de foto's stonden

l stond voor slechte kwaliteit
h stond voor goede kwaliteit

maar door makejpg.php werd elke foto met imagejpeg aangemaakt. dit is veel te belastend voor de webserver. Dus mijn project is op zich wel klaar.. maar als het anders kan heb ik dat liever omdat dat minder belastend is.

Nu is mijn vraag:

Hoe beveilig ik de losse foto's in mijn mappen zodat een gebruiker die de foto niet heeft gekocht of niet de eigenaar is.. niet even de url naar de slechte foto kan kopieren en de mapnaam veranderen.

Bv:

www.defotooosite.nl/fotos/thumbs/3249784.jpg

in

www.defotooosite.nl/fotos/original/3249784.jpg

en dan de originele foto te zien krijgen.

Please..help!
 
PHP hulp

PHP hulp

19/11/2024 10:48:30
 
- SanThe -

- SanThe -

05/12/2006 11:42:00
Quote Anchor link
Hier was toch al een topic over?
 
Nick

nick

05/12/2006 11:44:00
Quote Anchor link
waar?
 
Thijs X

Thijs X

05/12/2006 12:17:00
Quote Anchor link
Moeten de mensen eerst inloggen voordat ze foto's kunnen kopen?
Zo ja dan zou je bij elke member in een database zetten welke foto's die heeft gekocht en dat elke x uit de database aanroepen wie welke foto's mag zien (moeten ze natuurlijk wel inglogt zijn voordat ze de foto's kunnen zien).
 
Nick

nick

05/12/2006 12:23:00
Quote Anchor link
Sorry als ik niet duidelijk genoeg ben geweest.

Wat jij probeer te zeggen heb ik al volledig werkend. het gaat ook niet om de website wat beveiligd moet worden [ dat heb ik al voltooid ]. het gaat erom dat gebruikers niet de link kunnen wijzigen naar map thumbnails en zo by de originele foto's komen:

bv:

http://www.defotoosite.nl/pictures/thumbs/32497832.jpg

in

http://www.defotoosite.nl/pictures/origineel/32497832.jpg

en zo de originele foto's kunne benaderen. de foto's moeten dus afzonderlijk worden beveiligd. en er moet bygehouden worden wie welke foto heeft gekocht [ in de map zelf ]. nogmaals: op de website werkt het perfect.

iig bedankt voor je post

gr.

nick
 
Joren de Wit

Joren de Wit

05/12/2006 13:31:00
Quote Anchor link
htaccess is hier denk ik de oplossing.

Op die manier kun je ervoor zorgen dat niemand de foto's met een directe link kan benaderen. Op jouw website kun je dan een pagina maken die eerst controleert of het een gevalideerde gebruiker is en dan de foto uit de juiste map laadt.
 
Wim

Wim

05/12/2006 13:59:00
Quote Anchor link
Je zou ook iedereen die een foto gekocht heeft in een db zetten en ze een unieke map geven op je server (die niet geraden kan worden door iemand anders) waarin zijn gekochte foto's staan.
Die worden dan bijv. bij aankoop gekopieerd vanuit een map waarin alleen een bepaald script bij kan om ze naar de gebruikersmap te kopieren.

Kost je wel veel schijfruimte op den duur, maar is denk ik wel veilig.

Een andere optie is dat je ze de foto's automatisch toe mailed, maar dat zal ook van de grootte van de foto's afhangen of een koper daar gelukkig van wordt.
 
- SanThe -

- SanThe -

05/12/2006 14:10:00
 
Joren de Wit

Joren de Wit

05/12/2006 14:12:00
Quote Anchor link
@Wim: zoals je zelf al aandraagt gaat dat heel veel schijfruimte kosten. Waarom dan niet de foto's gewoon in 1 map laten staan en alleen met een script de foto's tonen aan gevalideerde gebruikers?
 
Wim

Wim

05/12/2006 14:18:00
Quote Anchor link
@Blanche
Waar ik aan dacht was het gevaar dat een gebruiker dan wellicht de bestandsnamen van de andere foto's kan raden. Het was mij niet geheel duidelijk of hij daar vanuit zijn huidige script al een oplossing voor had.
Volgens mij is dat namelijk niet zo, gezien zijn opmerking:

"het gaat erom dat gebruikers niet de link kunnen wijzigen naar map thumbnails en zo by de originele foto's komen:".

Vandaar dus mijn suggestie, maar de benodigde schijfruimte is daarbij zeker een issue.



Je zou er ook nog voor kunnen kiezen de foto's in de database op te slaan. Is voor zover ik heb gehoord voor de db qua performance niet zo lekker, maar wel qua veiligheid.
 
- SanThe -

- SanThe -

05/12/2006 14:21:00
Quote Anchor link
Eris heeft een mooie oplossing in zijn eerder geplaatste topic gegeven.
 
Nick

nick

05/12/2006 19:35:00
Quote Anchor link
volgens mij snappen maar sommige van jullie mijn echte probleem. het gaat er niet om dat gebruikers op de website by bepaalde foto's niet mogen. dit heb ik al gemaakt.. en er word ook bygehouden wie welke foto heeft gekocht en of de gebruiker die ingelogd is de eigenaar is van een foto.

zodat er op de website de foto in goede ( of slechte ) kwaliteit word laten zien. wat ik nu heb is totaal veilig. behalve als de gebruikers een map zouden kunnen raden en de id die by een goede kwaliteits foto hoort.

het ging mij meer om de performance op de server ( ik laat nu alle foto's controleren die weergegeven worden en maak ze aan met de functie imagejpeg.. maar als je élke keer als een gebruiker een pagina opvraagt 100 foto's [bijv] moet zitten controleren en daarna aanmaken met imagejpeg.. is niet zo gunstig voor de server.

wat ik nu dus heb gedaan is het volgende:

alle thumbnails worden regelrecht met

<img src="images/thumbs/89732897.jpg">

aangemaakt.. en de foto's met originele kwaliteit laat ik nu alsnog door php doen.. dat zijn er een heel stuk minder..

maar iig bedankt voor jullie moeite!

nick
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.