Beveiligen afbeelding

Gestart doorFrozenflame12 reacties188 weergaven

13 berichten · pagina 1 van 1

Frozenflame

Lid · Topicstarter

Berichten
1.561
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo,

Ben op zoek naar een manier om afbeeldingen op mijn website te beveiligen. Heb momenteel een scriptje waarmee bij het opslaan van de afbeelding een transparante afbeelding wordt opgeslagen. Echter is daarmee het probleem niet opgelost. De link naar de afbeelding staat namelijk in de broncode.

Er is een hide functie ingebouwd zodat men moet reageren voordat de afbeelding gedownload kan worden. Echter kan deze dus ook gedownload worden door de broncode te openen. Helaas zijn er een aantal leden die hier misbruik van maken, dus zoek ik een manier om dit te beveiligen. Zit al dagen te zoeken op internet, maar ben nog niet veel bruikbaars tegengekomen.

Hieronder het gedeelte dat de afbeelding doet weergeven:

Codeblok (cover.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27


if(is_auth(loggedin, $uLev) || is_search_engine()) {
if($tFetch[tCategorie] == DVD){
echo "Afbeelding niet beschikbaarDe oorspronkelijke afbeelding of link ontbreekt..$tFetch[tUrl]." width="750" height="503" class="protectMe">
"
;
}

if($tFetch[tCategorie] == Bluray){
echo "Afbeelding niet beschikbaarDe oorspronkelijke afbeelding of link ontbreekt..$tFetch[tUrl]." width="750" height="416" class="protectMe">
"
;
}
}

echo "
"
;
echo "
"
;
echo "
"
;

//Hide functie
$hide_query = $mysql->query("SELECT * FROM member_covers_reacties WHERE tTicket=".$tFetch[tId]." AND tDoor=".$_SESSION[uId]."");
$hide = $mysql->num_rows($hide_query);
//Einde hide

$reactie_query = $mysql->query("SELECT * FROM member_covers_reacties WHERE tTicket=".$tFetch[tId]."");
$reactie = $mysql->num_rows($reactie_query);

if(is_auth(loggedin, $uLev) && $hide != "0" || is_search_engine() && $hide != "0"){
echo "Uploader: ._ROOT_."profile/".IdNaarNaam($tFetch[tDoor]).">".print_username(IdNaarNaam($tFetch[tDoor]))."
Datum: "
.$tFetch[tDatum]."
Type: "
.$tFetch[tType]."
Categorie: "
.$tFetch[tCategorie]."
Reacties: $reactie
"
;
echo ".$tFetch[tUrl]." download target="_blank">Afbeelding
"
;
}

?>

Hopelijk kan iemand me hiermee helpen.

Groetjes,
FrozenFlame
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Opslaan buiten je webroot, met readfile() openen en met een sessie controleren.
Een mooie drempel tegen hotlinking.
0
Frozenflame

Lid · Topicstarter

Berichten
1.561
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Opslaan buiten je webroot, met readfile() openen en met een sessie controleren.
Een mooie drempel tegen hotlinking.
Hoop eigenlijk op een ander alternatief. Betreft namelijk 30GB aan afbeeldingen. Gaat erg lang duren om deze te verplaatsen.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
De map met htaccess beveiligen i.p.v. buiten de webroot plaatsen.
0
Frozenflame

Lid · Topicstarter

Berichten
1.561
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
De map met htaccess beveiligen i.p.v. buiten de webroot plaatsen.
Denk dat het gelukt is, heb de volgende code toegevoegd:

Codeblok (.htaccess):

1
2
3

RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+.)?coverpaleis.nl [NC]
RewriteCond %{REQUEST_URI} ^/covers/.*$ [NC]
RewriteRule ^(.*)$ "http://www.coverpaleis.nl/$1" [R=301]

Rechtstreekse links zijn nu niet meer bereikbaar: http://www.coverpaleis.nl/covers/8004dcf9d5ede93aa358daa80b039f68.jpeg

Maar kan de afbeelding wel laten zien op de website, en deze laten downloaden. Bedankt voor de hulp!
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Dit is puur tegen hotlinking. Downloaden kunnen ze altijd via vele wegen.
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Inderdaad, ze zullen de afbeeldingen nog steeds kunnen kopieëren en dan gebruiken. Hier bestaat geen enkele uitweg voor en de beste oplossing is een doorzichtige copyright in het midden van de afbeelding.

Dit kan je eenvoudig toepassen met de PHP GD library.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Watermerken zijn ook weg te fotosoepen. wink
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Wat je het beste kunt doen is kleine preview (200x200) laten zien (met watermerk), na het plaatsen van een reactie een unieke code aanmaken (sha1 met microtime() bijv.) en dan bijvoorbeeld download?code=[code], met PHP afbeelding ophalen uit folder en die laten zien, en daarna code verwijderen waardoor het bestand maar 1x met die code gedownload kan worden.
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Maar je kan niet beveiligem tegen screenshots.
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jawel, want je geeft maar een kleine afbeelding weer (200x200) met watermerk, na reactie laat je pas bestand downloaden/zien.
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Maar met photoshop kan je de previeuw weer groter maken.. toch?
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Maar met photoshop kan je de previeuw weer groter maken.. toch?
Dan heb je kwaliteitsverlies en dat zou dus niks helpen.
Milan schreef:
Jawel, want je geeft maar een kleine afbeelding weer (200x200) met watermerk, na reactie laat je pas bestand downloaden/zien.
Iemand die de afeelding wilt rippen hoeft dus gewoon te reageren, dat helpt ook niet veel.

En je verplicht mensen om te reageren, en ze moeten reageren op een thumbnail van 200x200.

Dit zou een beetje helpen tegen bots, maar een bot is makkelijk zo te maken dat die een unieke reactie post.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren