Sigurnost uploada slike, avatara

Pozz

Napravio sam 1 formu za upload avatara na profil korisnika
http://pastebin.com/cqjYCfyF

I postavio sam pitanje na phpfreaks forumu, i po njima ne postoji siguran nacin uplada avatara posto vidim da se prepiru oko neznam ni ja cega.

Sad me zanima koju ja validaciju mogu tu jos da dodam da bi upload slike kao bio siguran ?

Itko zna ? :smiley: 20 znakova

Promijeni naziv slike u nešto unikatno (time() npr), i sačuvaj sliku pod jednom ekstenzijom (.jpg npr). Chmod 644 na nju… Prikaži sliku pomoću php fajla tako da korisnik ne zna gdje je slika (slika.php?s=time().jpg). Iskoristi i GD ili ImageShack tako da korisnici ne mogu postaviti slike koje se mogu “izvršavati” il’ kako već…

Vidis ja sam mislio kad korisnik uzme sliku sa browse, vidit koja je extenzija slike samo npr. mojaslika.jpg i onda ju preimenovat sa mt_rand + sha1 da dobijem sha1(mt_rand()).jpg i onda napravit provjeru sa strip_tags i tek onda uploadam u folder di su slike avatara korisnika a u bazu spremim samo link do slike. Za output koristit htmlspecialschars($slika, ENT_QUOTES, “UTF-8”).

Može i tako, nije bitno šta ćeš koristiti da bi dobio novi naziv, samo misli i na podudaranje naziva slika. U budućnosti ti može praviti probleme, ako dvije ili više fotografija bude sa istim nazivom…

Bolje je da korisnicima ne prikazuješ “stvarnu” putanju do slike, te prikažeš sliku pomoću .php fajla. Kad klikne na link, dobiti će neki “notice”, i neće vidjeti pravu putanju. Takođe je dobro da je cropuješ/umanjiš na određenu veličinu kako bi dobio i na prostoru a vjerovatno ćeš dobiti i na kvalitetu slike, samim umanjivanjem.

Isto tako stavi CHMOD da ne može “execute”.

Stavio sam dimenziju slike 150x150 da nemoze vecu uploadat samo moram smanjit velicinu slike u kb, a sto se tice naziva slike mogu stavit i id korisnika + time() tako da nemam problema s duplikatima.

A kako mislis preko php-a da prikazem sliku nisam jos radio s time ?

CHMOD na mapu di su samo slike avatara ce ic 644

header('Content-Type: image/jpeg');
readfile('path/to/myimage.jpg');

<img src="slika.php" alt="" />

http://www.thesitewizard.com/archive/protectimages.shtml

Ok hvala ti puno. Joj 20 znakova :frowning:


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Profit Monkey