[htaccess] & [PHP] toegang tot fotos beveiligen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met het volgende:
Op mijn website heb ik een map met plaatjes. Ingelogde gebruikers kunnen hier gebruik van maken maar ik wil niet dat mensen van buitenaf hiernaar toe kunnen linken of downloaden.
Vervolgens kwam ik het volgende tegen:
code:
1
2
3
4
5
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://<MIJN-IP>/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://<MIJN-IP>/.*$ [NC]
RewriteRule .*\.(gif|JPG|png)$ - [L]

Als ik bovenstaande in mijn htaccess zou zetten kun je niet meer van buitenaf er naar toe linken en ophalen.
Mijn PHP script zou dit dus wel kunnen en de plaatjes ophalen omdat deze op de server (Lees: IP adres) aanwezig is. (Als er iets niet klopt in mijn gedachtegang hoor ik het graag)

Nu blijf ik echter de melding krijgen:
code:
1
2
Forbidden
You don't have permission to access /<hele dirverwijzing>/1.jpg on this server.


In apache staat in de config dit aan:
LoadModule rewrite_module modules/mod_rewrite.so

Zijn er nog dingen die ik vergeten heb ? Of kan ik de beveiliging beter anders aanpakken.

Het andere waar ik aan zit te denken is in htaccess gebruikers moet aanmaken met een .htpasswd bestand. Dit had ik ook al werkend (Lees: netjes een 403 pagina), maar ik weet dan niet hoe je ism een database dit moet laten werken zodat je er dan toch bijkan. Want op het moment dat je inlogt kan ik volgens mij niet de waarden $PHP_AUTH_USER en $PHP_AUTH_PW invullen. Dit wil ik dan in 1 keer doen bij het inloggen.
Ik kon hier weinig documentatie over vinden wat wel werkte was http://www.zend.com/zend/tut/authentication.php

Wellicht ben ik ergens nog iets vergeten of heeft iemand aanwijzingen om het goed te doen. (Duidelijke manual ergens wat met PHP en htaccess kan :? )

Acties:
  • 0 Henk 'm!

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Ik zou gewoon die hele dir dichtzetten met Apache

code:
1
Deny From All


En dan PHP die images laten uitlezen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// Aanpassen naar iets dat klopt ;-)
if (!$is_loggedin)
{
header('Content-Type: image/jpeg');
echo readfile('images/dontleech.jpg');
die();
}
else
{
header('Content-Type: image/jpeg');
// basename() om tegen te gaan dat scripts worden uitgelezen
echo readfile('images/'. basename($_GET['image']));
die();
}
?>


Dan zou je dat content-type nog dynamisch kunnen maken via imageinfo() o.i.d. (http://be.php.net/image) maar dat vind je wel ;-)

[ Voor 7% gewijzigd door dingstje op 17-01-2004 17:14 . Reden: PHPtags niet toe ]

If you can't beat them, try harder


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Dat werkt uiteraard alleen als je site ook op IP adres wordt benaderd. Als dat niet het geval is moet je de URL van je site opnemen in plaats van het IP....

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Ook
  • Registratie: September 2000
  • Laatst online: 20-09 09:01

Ook

Yes I can!

Dit is mijn code, staat in de .htaccess en werkt perfect.. Ik zie die [OR] tag bij jou trouwens niet staan, zet die er eens bij! Ook heb ik een andere 'laatste regel'; bij mij bevat ie een vervangend plaatje, wat mensen dus te zien krijgen als ze toch proberen te linken. Zoals je ziet heb ik gathering.tweakers.net er ook bijgezet zodat ik mijn plaatjes wel hier kan hosten (en natuurlijk op mijn eigen site), maar niet op andere sites:
code:
1
2
3
4
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^http://www.mijnwebsite.nl/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://gathering.tweakers.net/.*$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ http://www.onzin.nl/3991/pictures/eikel.jpg [R,NC]

Wees consequent, maar niet altijd