afbeeldingen beveiligen?
Zomaar eens een vraag die door m'n hoofd schoot... kun je afbeeldingen eigenlijk 100% beveiligen? Maar dan op zo'n manier dat de ene persoon de afbeelding wel kan zien en de andere niet?
Denk bijvoorbeeld aan een profielen website. De leden moeten wel hun eigen fotoalbum kunnen inzien, maar niet dat van een ander. Maar om een afbeelding te tonen moet deze ergens in een publieke map staan. Als je de juiste url van zo'n afbeelding weet dan kun je deze toch altijd opvragen? Uiteraard kun je het de gebruiker lastiger maken door moeilijke urls te gebruiken www.site.nl/album/234WFED/foto/asda3443adfna3j4a4rjadf343.jpg maar het feit blijft dat als persoon A de url van een foto van persoon B kent, dat persoon A dan de foto van persoon B kan zien. Toch?
Denk bijvoorbeeld aan een profielen website. De leden moeten wel hun eigen fotoalbum kunnen inzien, maar niet dat van een ander. Maar om een afbeelding te tonen moet deze ergens in een publieke map staan. Als je de juiste url van zo'n afbeelding weet dan kun je deze toch altijd opvragen? Uiteraard kun je het de gebruiker lastiger maken door moeilijke urls te gebruiken www.site.nl/album/234WFED/foto/asda3443adfna3j4a4rjadf343.jpg maar het feit blijft dat als persoon A de url van een foto van persoon B kent, dat persoon A dan de foto van persoon B kan zien. Toch?
Gesponsorde koppelingen:
Ja, je kan nooit een afbeelding 'onzichtbaar' maken. Zodra je iets op het web zet is het altijd beschikbaar voor een ander.
Heeft dit niet met chmod te maken? Dat je een map zo kunt beveiligen dat alleen php erbij kan?
Geen idee? Maar het moet toch op het scherm getoond worden... als dat bij persoon A kan dan kan het bij persoon B ook zou je zeggen.
100% geld voor niets op het internet.
Maar achter een inlog kan je natuurlijk wel maken wat jij wilt.
Je werkt dan niet met de echte img urls maar met een (random) gegenereerde code voor die img.
In de persoonlijk beveiligde paginas , kun je dan aan de hand van die code controleren of dat inderdaad een 'eigen' img is en dan die tonen.
En dat tonen doe je dat (bv) vanuit een php pagina met een img header
Misschien is bovenste helemaal niet nodig, alleen de img via php bestand weergeven met juiste header. Php kan bij die map Maar voor alle externe aanvragen zet je die map dicht met htaccess ! Klaar ! Koud kunstje !
Maar achter een inlog kan je natuurlijk wel maken wat jij wilt.
Je werkt dan niet met de echte img urls maar met een (random) gegenereerde code voor die img.
In de persoonlijk beveiligde paginas , kun je dan aan de hand van die code controleren of dat inderdaad een 'eigen' img is en dan die tonen.
En dat tonen doe je dat (bv) vanuit een php pagina met een img header
Misschien is bovenste helemaal niet nodig, alleen de img via php bestand weergeven met juiste header. Php kan bij die map Maar voor alle externe aanvragen zet je die map dicht met htaccess ! Klaar ! Koud kunstje !
Ah oke... maar dan haal je dus altijd de img via php op? En moeten de images dan wel in een publieke map staan, of mogen ze ook in een afgeschermde map staan die niet via je browser bereikbaar is?
Hoe zou zo'n url volgens jou eruit (kunnen) zien?
Hoe zou zo'n url volgens jou eruit (kunnen) zien?
Sorry, ben daar laatste maanden niet mee bezig geweest...
Ik ga het niet voor je maken.
Wat ik nog ongeveer herinner, even snel..
tonen img inde met sessions beveiligde omgeving:
<img src="foto.php?code=xyx" >
en die foto.php pagina is ongeveer (details weet ik echt nu even niet)
sorry, het is erg weet dat ff niet, dit kun je dus echt niet zo gebruiken, maar voor het idee ben je heel eind. Zoek op iets van "image php output GD ..."
succes
Ik ga het niet voor je maken.
Wat ik nog ongeveer herinner, even snel..
tonen img inde met sessions beveiligde omgeving:
<img src="foto.php?code=xyx" >
en die foto.php pagina is ongeveer (details weet ik echt nu even niet)
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
header ( img/jpeg .....
$flink=openjpg('fotomap/'.'xyz.jpeg // php kan WEL bij fotomap !!
en dan de img data outputten....
?>
header ( img/jpeg .....
$flink=openjpg('fotomap/'.'xyz.jpeg // php kan WEL bij fotomap !!
en dan de img data outputten....
?>
sorry, het is erg weet dat ff niet, dit kun je dus echt niet zo gebruiken, maar voor het idee ben je heel eind. Zoek op iets van "image php output GD ..."
succes
ah oke... thanks voor het idee... maar ik denk dat dat wel een belasting voor de server is, omdat ieder plaatje dan door php gerenderd moet worden... of zou dat wel meevallen?
Dat valt wel mee, php/GD schuift het blok data gewoon door..
Je zou altijd de foto's kunnen opslaan in een database. Dat kan je uitlezen via php. Zo zijn je foto's 100% afgeschermd voor ongenodigden. Het enige nadeel is dat je databases uitzonderlijk groot worden.
Miscchien valt er nog wel iets slims met htaccess te bedenken?
Wat je ook zou kunnen doen is om de urls nooit openbaar te maken. Je zou een afbeelding kunnen opvragen als: img.php?img=fsadfsa9874892hj324 (zoals roland aangaf), en een string in een session var opslaan. Met een slim algoritme kan je dan de foto opvragen die ergens in een map staat. Niemand weet deze map behalve het systeem zelf. Dit wordt namelijk ook random aangemaakt door het systeem.
Hier bereik je dan eigenlijk mee dat tijdens elke sessie een andere code om de afbeelding op te vragen nodig is. Je kan de foto dan ook niet naar mensen doorsturen.
Miscchien valt er nog wel iets slims met htaccess te bedenken?
Wat je ook zou kunnen doen is om de urls nooit openbaar te maken. Je zou een afbeelding kunnen opvragen als: img.php?img=fsadfsa9874892hj324 (zoals roland aangaf), en een string in een session var opslaan. Met een slim algoritme kan je dan de foto opvragen die ergens in een map staat. Niemand weet deze map behalve het systeem zelf. Dit wordt namelijk ook random aangemaakt door het systeem.
Hier bereik je dan eigenlijk mee dat tijdens elke sessie een andere code om de afbeelding op te vragen nodig is. Je kan de foto dan ook niet naar mensen doorsturen.
Oke, ik snap wat je bedoelt, maar wat bedoel je met "Niemand weet deze map behalve het systeem zelf. Dit wordt namelijk ook random aangemaakt door het systeem." Je kan toch geen random map aanmaken? Daar staan de foto's dan toch niet in? Wat bedoel je precies?
Die foto's die de gebruikers uploaden die worden (neem ik aan) met een scriptje geupload. Het pad naar die map, en de bestandsnaam, kunnen automatisch (en dan willekeurig) worden gegenereerd.
ah zo bedoel je.. oke :)
Het gaat hier puur om een fictief geval, ik ben niet met zo'n site bezog, maar vroeg me af hoe zoiets werkt. Wat jij zegt is inderdaad een goede.. maar als ik het goed begrijp kun je de foto's dus ook in een map zetten die een map hoger ligt dan de www map?
Het gaat hier puur om een fictief geval, ik ben niet met zo'n site bezog, maar vroeg me af hoe zoiets werkt. Wat jij zegt is inderdaad een goede.. maar als ik het goed begrijp kun je de foto's dus ook in een map zetten die een map hoger ligt dan de www map?
Hallo,
Uit het bovengenoemde blijkt dat je foto's op het privé deel van een server kunt zetten en via header toch gewoon kunt tonen. Hartstikke mooi, want op die manier staan privé foto's veilig. Maar nu vraag ik me eigenlijk af of zoiets ook met filmpjes kan. Kun je die ook buiten de www map plaatsen en toch gewoon afspelen?
Uit het bovengenoemde blijkt dat je foto's op het privé deel van een server kunt zetten en via header toch gewoon kunt tonen. Hartstikke mooi, want op die manier staan privé foto's veilig. Maar nu vraag ik me eigenlijk af of zoiets ook met filmpjes kan. Kun je die ook buiten de www map plaatsen en toch gewoon afspelen?
Waar is die GD-bewerking voor nodig? Ga je de foto resizen of watermarken?
Nee, dan kan je ook readfile() gebruiken.
Het spreek zich voor zich dat je foto's niet kan beveiligen tegen downloaden.
Nee, dan kan je ook readfile() gebruiken.
Het spreek zich voor zich dat je foto's niet kan beveiligen tegen downloaden.
"Het spreek zich voor zich dat je foto's niet kan beveiligen tegen downloaden"
Dit kan toch wel als ze buiten de www map staan? Iemand die is ingelogd kan alleen z'n eigen foto's zien en niet die van iemand anders? Zie bijvoorbeeld de opmerking van Joris hierboven?
Maar mijn vraag is dus of je ook filmpjes die niet in de www map staan kunt afspelen (of downloaden)?
Dit kan toch wel als ze buiten de www map staan? Iemand die is ingelogd kan alleen z'n eigen foto's zien en niet die van iemand anders? Zie bijvoorbeeld de opmerking van Joris hierboven?
Maar mijn vraag is dus of je ook filmpjes die niet in de www map staan kunt afspelen (of downloaden)?
Afbeeldingen op het internet zijn Altijd te downloaden..
dit geld ook voor filmpjes en zo goed als alles wat op internet staat is te downloaden of te bekijken...
Als iets te bekijken of te luisteren is, is het zo goed als altijd te downloaden.
dit geld ook voor filmpjes en zo goed als alles wat op internet staat is te downloaden of te bekijken...
Als iets te bekijken of te luisteren is, is het zo goed als altijd te downloaden.
Foto's die buiten de www-dir staan kunnen niet door Apache geserveerd worden. Als je de foto's buiten de map zet kan je deze met readfile() ophalen nadat je bijv. de rechten gecontroleerd hebt (ben je vriend van x, mag je die foto ophalen etc....
Eventueel kan je met mod_rewrite nog de URL een beetje aanpassen tot een normale image URL.
Eventueel kan je met mod_rewrite nog de URL een beetje aanpassen tot een normale image URL.
Gewijzigd op 13/06/2011 23:32:50 door - Aar -
@Aar: oke... maar kan dat alleen met foto's of ook met filmpjes?
@Marco: als je ze kunt zien kun je ze downloaden, maar als ik zorg dat jij ze niet kunt zien, dan kun je ze ook niet downloaden :)
@Marco: als je ze kunt zien kun je ze downloaden, maar als ik zorg dat jij ze niet kunt zien, dan kun je ze ook niet downloaden :)
Ozzie PHP op 13/06/2011 23:36:35:
@Aar: oke... maar kan dat alleen met foto's of ook met filmpjes?
We hebben het altijd over bestanden, dus of het foto's filmpjes of weet ik veel wat zijn...
Quote:
@Marco: als je ze kunt zien kun je ze downloaden, maar als ik zorg dat jij ze niet kunt zien, dan kun je ze ook niet downloaden :)
Totdat iemand die wel de foto mag bekijken de foto gaat downloaden en op internet gaat verspreiden. Maar goed, dit houd je gewoon niet tegen :P
Gewijzigd op 13/06/2011 23:44:09 door - Aar -
Oke, maar stel ik heb een ledensite... denk bijvoorbeeld aan facebook. Kan het dan zo zijn dat je een filmpje upload. Dit filmpe wordt dan buiten de www map gezet. En kun je dan toch dit fimpje gewoon in je browser bekijken? (gaa mij niet zozeer om het HOE maar meer om het OF)



