Jump to content
CrisTany

Save Images in MySQL Database

Recommended Posts

Posted

Salut, am nevoie de o metoda pentru a salva anumite imagini in baza de date MySQL, cativa din voi siti pentru ceva din topicul cu Security Researchers, unde v-am trimis link cu websiteul, unde salvam imaginile in fisiere si erau usor accesibile de catre cine nu trebuie, maginile erau contra cost si va dati seama de aici de ce vreau asta ..

Ce am incercat eu e asa:

//INSERT IMAGES
$img_url = 'image.jpg';
$image_bin = mysql_real_escape_string(file_get_contents($img_url));
mysql_query('INSERT INTO images
(filename, type, bin)
VALUES
("file.jpg", "image/jpeg", "' . $image_bin . '")');


//SELECT IMAGES
$qry = 'SELECT filename, type, bin
FROM images
WHERE id = 1';
$result = mysql_query($qry);
$row = mysql_fetch_assoc($result);
header('Content-type: ' . $row['type']);
echo $row['bin'];

din pacate nu afiseaza nimica, posibil sa nu fi creat tabelul corect.

Daca stiti alte metoda sau sa o pot repara pe asta, va fi ok.

Mersi.

Posted
unde v-am trimis link cu websiteul, unde salvam imaginile in fisiere si erau usor accesibile de catre cine nu trebuie, maginile erau contra cost si va dati seama de aici de ce vreau asta ..

p?i logica ar fi s? ai numele fi?ierelor sub forma unui ?ir de caractere aleatorii... 2 imagini » 2 nume diferite

...sau...

po?i s? le encodezi în base64

Posted
@EAdrian: Nu-l ajut? prea mult c? se va face leakege mai u?or dac? se afl? denumirile. Cel mai ok este cum i-am dat eu acolo.

când uploadezi fi?ierele le salvezi sub forma:

(a?a le am eu în db)

http://imagehost.tekken.ro/i/g3XLFpSHTCifxiZJpGUVzlhjc29kTP9Eonekr19TY.png

te gânde?ti la cryptare sau pur ?i simplu un simplu ?ir de caractere aleatorii la fiecare poz? în parte (ex: thumbnail s? aib? nume diferit fa?? de poza mare)

Posted

Nu la criptare. Vezi acolo în link. Fiecare fi?iere are ata?at un hash pe baz? de timp ?i alte prostii. Deci va fi valabil pentru download doar o perioad? scurt? de timp. Altfel, cine m? opre?te s? m? prind de regul? ?i s? fac crawling la tot siteul?

Zic asta pentru a spus c? sunt imagini pl?tite ?i nu are nevoie nici m?car de hotlinking.

Posted
Nu f? prostia asta. Pune protec?ie din serverul web.

Uite ai aici ?i exemplu.

HttpSecureLinkModule

Nu inteleg cum ma poata ajuta asta, sau poate nu inteleg eu cum functioneaza.

Nu exista o modalitate sa fac un folder si sa nu permita browsing ? sa poata fi accesat doar de server cand se cumpara o iamgine ?

Posted (edited)
Nu inteleg cum ma poata ajuta asta, sau poate nu inteleg eu cum functioneaza.

Nu exista o modalitate sa fac un folder si sa nu permita browsing ? sa poata fi accesat doar de server cand se cumpara o iamgine ?

Asta e o regul? c? htaccess trebuie s? includ?:


<Files ~ "^.*\.(ini|LOG|log|bak|bk|LCK)">
Order allow,deny
Deny from all
Satisfy All
</Files>

Options -Indexes +FollowSymLinks -MultiViews

//edit: http://stackoverflow.com/questions/3472770/restrict-file-access-only-read-through-php

Altfel, cine m? opre?te s? m? prind de regul? ?i s? fac crawling la tot siteul?

Zic asta pentru a spus c? sunt imagini pl?tite ?i nu are nevoie nici m?car de hotlinking.

Cum faci crawling la tot siteul când tu numai ?i numai când cumperi poza respectiv? î?i bor??te link-ul random din database ?

PS: când am pu?in timp liber ?i tu de altfel, hai s? facem un test.. eu fac un scriptule? care s? borasc? ni?te poze ?i tu faci ce vrei s? ob?ii pozele... facem ?

Edited by EAdrian
Posted

acuma posteaza si metoda aleaza ,oricum sa le salvezi ca blob este cel mai nasol ,ai s avezi dupa ce urci vreo 10K, o sa ai nevoie de hosting serios /// cred ca cea mai buna metoda ar fi cea cu htacces + ceva sistem de autentificare cu cheie pe user :)

Posted

Am salvat in baza doar linkul catre imagine, iar la upload din ACP, fiecare imagine salvat intr-un director cu nume aleatoriu alcatuit din 30 de caractere aleatorii, cifre si litere, la fel si numele imaginii.

Posted (edited)

@EAdrian: Dac?-s random este corect ce spui.

Nu este pe sesiune. Vor putea face share de linkuri ?i o s? fii doar un site amuzant în care cei care au cump?rat pot face share direct în hostingul t?u (c? pot face share la imagini ?i pe alte siteuri este alt? problem?). Este ca ?i cum ai pune pagina de admin pe un link generat random c?-l ?tii doar tu sau user. Cineva va folosit Chrome? Ghici ce: Google va indexa linkurile accesate prin browser c? au sistemul ?sta.

S? nu mai explic c? random de fapt nu este random.

Nu inteleg cum ma poata ajuta asta, sau poate nu inteleg eu cum functioneaza.

Nu exista o modalitate sa fac un folder si sa nu permita browsing ? sa poata fi accesat doar de server cand se cumpara o iamgine ?

Po?i face combina?ia cu random ?i cu file_get_contents, dar ghici ce înseamn? optimizare ?i de ce serverul t?u va muri când faci a?a ceva. E o prostie. Dac? ai din serverul web protec?ie nu ai de ce s? serve?ti fi?ierele din php.

Logica voastr? nu este ok.

Crede-l m?car pe n3curatu. Are o experien?? foarte bogat? în web.

Edited by tromfil

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...