Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Securitate imagini sau alte fisiere
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
gibi



Data înscrierii: 27/Iul/2007
Mesaje: 38

Trimis: Mar Ian 22, 2008 7:44 pm    Titlul subiectului: Securitate imagini sau alte fisiere  

Salut,
astazi am vazut ceva si am fost impresionat, dar partea proasta este ca nu stiu cum a facut.
Se da un URL:
http://example.com/files/picture.jpg?key=1223b8c30a347321299611f873b449ad
click pe url, vedem imaginea.
Totul e ok pana acu, dar cand dau click pe http://example.com/files/picture.jpg imi da eroare 403 ... si totusi imaginea este acolo.
CUM a facut ?


(Solutia asta am vazut-o pe un site de comunitate cu 12 milioane useri, fiecare cu o medie de 10-15 imagini ...)
Sus  
alex.bumbacea



Data înscrierii: 01/Aug/2006
Mesaje: 17

Trimis: Mar Ian 22, 2008 8:15 pm    Titlul subiectului:  

mod_rewrite - cauta in documentatia de la apache2
Sus  
gibi



Data înscrierii: 27/Iul/2007
Mesaje: 38

Trimis: Mie Ian 23, 2008 9:24 am    Titlul subiectului:  

bun, dar cum verifica acel key ?
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 2928
Locație: țopăi pe tasta DELETE

Trimis: Mie Ian 23, 2008 9:36 am    Titlul subiectului:  

e vorba de verificarea acelui chei printr-un script [cheia poate fi (de obicei e) in baza de date, asociata unui user sau unui mail] apoi afisarea imaginii prin header(content-type-draci-laci) cu gd2 ca urmare a respectarii conditiei... imaginea nu vei stii niciodata unde se afla [sau, poti sa testezi foldere]

[probabil ca exista si alte variante]

PS: nu e o chestiune asa avansata dar, sa zicem

oricum, nu e prea elegant, se putea trimite key-ul prin sesiune ca sa se evite o asemenea adresa dar depinde de modul de utilizare, daca se acceseaza imaginea din alta parte, va fi inaccesibila fara valoarea sesiunii... deci va fi nevoie si de key
- ca tot veni vorba de rewrite, se putea, /keya_cea_lunga/img.jpg

ideea e ca trebuie sa-ti permita server-ul - apelezi gd2 de fiecare data cand se vede o imagine. daca ai un site care are 3 mil de imagini si 2 mil de vizitatori lunar, o sa fie cam greu pentru hosting-ul tau
Sus  
gibi



Data înscrierii: 27/Iul/2007
Mesaje: 38

Trimis: Mie Ian 23, 2008 9:43 am    Titlul subiectului:  

Imaginea e acolo. Nu exista DB si nu exista PHP.
WebServerul e nginx (dar cred ca se poate si in apache sau alte webservere)

Totul se face la nivel de webserver ... dar nu stiu cum.
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 2928
Locație: țopăi pe tasta DELETE

Trimis: Mie Ian 23, 2008 10:44 am    Titlul subiectului:  

trebuie sa existe un limbaj de programare care sa conditioneze cheia aia... de unde se stie chieia? si, de unde stii tu sigur ca nu exista baza de date? [e posibil sa nu existe mysqlm dar poate fi si un array pe post de baza de date, de unde se face verificarea...]
Sus  
gibi



Data înscrierii: 27/Iul/2007
Mesaje: 38

Trimis: Mie Ian 23, 2008 11:05 am    Titlul subiectului:  

Uite exact cum e treaba:
Urmatoarele imagini merg:
http://87.245.192.166/102/1/8/0/96206394/105202/108217_48.jpg
http://87.245.192.166/102/1/8/0/96206394/105202/108217_192.jpg
http://87.245.192.166/102/1/8/0/96206394/105202/108217_300.jpg

Imaginea cu key:
http://87.245.192.166/102/1/8/0/96206394/105202/108217_920.jpg?cc=NuXHiQwyH3sxmVnEM3bRybrqHf4ybKwMwP3HBc5rxmI

Eroare 403:
http://87.245.192.166/102/1/8/0/96206394/105202/108217_920.jpg
Imaginea asta e sigur pe disk... problema mea e cum verifca acel key ?
Sus  
kleampa



Data înscrierii: 10/Iul/2005
Mesaje: 2056
Locație: Bucuresti

Trimis: Mie Ian 23, 2008 11:28 am    Titlul subiectului:  

calea catre poza e de fapt un fisier .php rescris cu mod_rewrite
acele key-uri sunt atasate in baza de date cailor catre poze
acel fisier .php in functie de acel key ia din baza de date calea catre poze si o afiseaza cu header
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 2928
Locație: țopăi pe tasta DELETE

Trimis: Mie Ian 23, 2008 2:05 pm    Titlul subiectului:  

man, nu tot ce zboara se mananca...
http://en.wikipedia.org/wiki/Tcp - aici ce fisier este pe disk? tu crezi ca extensia aia pe care o vezi acolo are vr-o relevanta?... putea fi si "imagine.xtsds"... asta nu inseamna ca exista pe disk vr-un fisier cu extensia xtsds... :x

te contrazici aiurea... in primul rand, trebuie sa existe un limbaj de programare [poate sa nu fie PHP, poate sa fie altceva, dar exista], o baza de date [sau un loc din care se iau informatiile astea - poate fi xml, csv, txt, etc.etc] si un server care face rewrite. eu banuiesc ca e vorba de PHP, MySql si Apache... daca zici ca o fi altceva, o fi, nu te contrazic...
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community