PDA

Pogčedajte punu verziju : Hotlinking problem


vendi
26. 07. 2007., 16:49
Imam jedan problem i pitanje za vas. Imam fajlove koji se nalaze u jednom direktorijumu. Pristup sam dozvolila samo korisnicima sa odredjenih IP adresa (.htaccess).

Sada je potrebno na sajtu prosiriti pristup i preko logovanja. Tako da korisnik koji je logovan i za koga postoji promenljiva sesije ima prava pristupa tom direktorijumu. Sada ljudi koji ne dolaze sa tih IP adresa vec se loguju ne mogu pristupiti fajlovima.

Na ovaj nacin sam preko .htaccess-a zabranila hotlinking ali i onemogucila logovanim korisnicima pristup fajlovima.

Da li postoji nacin da se ovo resi preko .htaccess-a? Hvala

ivanhoe
26. 07. 2007., 17:49
to se obicno radi drugacije, zabranis svima pristup tim fajlovima preko weba, a onda napravis skriptu koja ce da proveri sesiju, pa ako je korisnik ulogovan onda ce da mu izprinta sliku... ime slike se salje kao GET parametar, npr. moja_skripta.php?show=pera.jpg

Kad ovo radis bitno je da fajl prikazes samo ako se nalazi u tom nekom direktorijumu gde su slike, iz sigurnosnih razloga. Znaci treba prvo formirati zadatu putanju do slike, pa onda pozvati realpath() na tome da bi bili sigurni da nas neko ne hakuje sa raznim ../../ forama, pa onda proveriti da li takva putanja lezi unutar zadatog dir-a sa slikama.

takodje ako ti je ruzno da ti putanja do slika sadrzi ime_skripte.php i GET parametre, moze se napraviti relativno lako sa mod_rewrite da korisniku ovo sve bude nevidljivo, on recimo trazi /images/show/pera.jpg, a ti to rewritujes interno u svoju skriptu.

vendi
26. 07. 2007., 20:49
to sam otprilike znala, ali mi je problem sto koristim free blog sistem i imam vec nekoliko stotina zapisa koji koriste fajlove direktno.

ne bi bilo bas zgodno da moram sve zapise editovati :(

neko drugo resenje?

McKracken
26. 07. 2007., 21:07
takodje ako ti je ruzno da ti putanja do slika sadrzi ime_skripte.php i GET parametre, moze se napraviti relativno lako sa mod_rewrite da korisniku ovo sve bude nevidljivo, on recimo trazi /images/show/pera.jpg, a ti to rewritujes interno u svoju skriptu.


Pomaze kad procitas celu poruku :)

vendi
26. 07. 2007., 21:33
sorry :) kako to uraditi tacno?

misk0
26. 07. 2007., 23:05
Pa nesto kao (lupam sintaxu):

RewriteRule ^put/do/slika/(.*).jpg$ http://www.tvojsajt.com/pokazisliku.php?name=$1

i onda imas pokazisliku.php koji za parametar name vraca sliku

BrainDamage
27. 07. 2007., 05:03
+ pride u pokazisliku.php dodas check da li je korisnik logovan, pre nego sto mu das samu sliku. Ako je logovan -> prikazi sliku, else -> error :)