[ stefaneg @ 13.03.2006. 19:52 ] @
Pošto bih trebao da počnem da radim neki ozbiljni projekat, prvo mi je neophodno da utvrdim neke činjenice... o sigurnosti. Ono što sam uspeo da nađem pretragom ovog foruma je bilo u neku ruku poučno, ali da li je to sve na šta bih trebao obratiti pažnju? Ovaj link: http://www.onlamp.com/pub/a/php/2003/03/20/php_security.html je ostavljen u jednoj tema koje sam pročitao i dobio sam neke odgovore. E sad ono što me zanima: sql injection: da li se može sprečiti primenom prostih metoda kao što je escape.ovanje prosleđeneih stringova ili proverom (i eventualnom konverzijom) promenljivih od kojih se očekuje da budu celobrojnog tipa? ako se prvi problem može rešiti sa addslashes() koja je namena mysql_real_escape_string().a? chmod: zapravo koji bi chmod trebao biti postavljen na dir www, koji na config fajlove (tu podrazumevam one koji sadrže parametre konekcije baze), a koji na one kojima korisnik treba da pristupa direktno? Išao sam na ideju da korisnik može pristupiti samo osnovnom fajlu (index.php), a osalima preko njega (include().om, u zavisnosti šta se prosleđuje kao $_GET['action'], kao u recimo PHPNuke.u), a ako na neki fajl ode direktno, dobija redirekciju na index.php forbidden area: da li je dovoljno sigurno prilikom login.a proveriti identičnost podataka sa onima u bazi i onda recimo staviti u sesiju podatke kao što su username i userid, a na početku skripte staviti samo session_start() i proveriti postojanje promenljive $_SESSION['username']? Da li ima potrebe menjati session.save_path (to sam malo pre pročitao negde)? hotlinking: kako se sprečava? naravno, kada bih na sajt hteo staviti neke fajlove za download iz određenog dir.a, ne bih ostavljao apsolutne adrese do nih već bi download forsirao preko header() funkcije. Ali ako neko sazna za apsolutno adresu dira u kome se čuvaju fajlovi, šta onda? upload: ako uradim neki sistem za upload.ovanje korisnikovih fajlova (slike, programi (šta ja znam)) na koji način se proverava "ispravnost" ovih fajlova? Mogu da dobijem atribut "vrsta fajla", i proverim da li je na listi dozvoljenih fajlova (npr image/jpeg, image/gif...), ali kako proveriti recimo da li je fajl čist od virusa? Ili to Apache autmoatski obavlja? Na šta još treba obratiti pažnju? Ako sam malo smorio, izvinjavam se, ali bilo bi mi jako važno kada bih dobio odgovore na sva ova pitanja. Naravno ako sam nešto zaboravio (ne sumnjam), slobodno mi skrenite pažnju :, |