| 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: 2768
Locație: Targoviste City
|
| 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: 2768
Locație: Targoviste City
|
| 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: 2007
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: 2768
Locație: Targoviste City
|
| 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 |
|
| |