[ pera zdera @ 20.11.2008. 10:52 ] @
Kako da filtriram na najbolji nacin komentare kada ih korisnik ubacuje u bazu? Tacnije koje funkcije treba da koristim kada ubacujem komentar u bazu a da nedodje do problema(jer neko moze da ubaci neki kod koji bi pokvario celu stranicu pri iscitavanju tog komentara). Da li postoji neka online aplikacija koja testira sigurnost sajta, kao sto su XSS, CSRF, CSS...
[ Nemanja Avramović @ 20.11.2008. 13:04 ] @
mysql_real_escape_string() i strip_tags()

pogledaj manual za opise tih funkcija
[ pera zdera @ 20.11.2008. 14:00 ] @
Znaci uvek kad radim kveri sa stringom prvo ga pustim kroz mysql_real_escape_string a ako ga insertujem u bazu onda uradim i strip_tags ili moze samo jedna od ove dve funkcije da se koristi? Ako je ovo poslednje koja je bolja?
[ Aleksandar Ružičić @ 20.11.2008. 14:01 ] @
iskljuci magic_quotes_gpc u php.ini, ili, ako nemas mogucnost da menjas php.ini onda pre koriscenja bilo cega iz $_GET, $_POST ili $_COOKIE nizova uradi sledece:
Code:


if (get_magic_quotes_gpc()) {

function stripslashes_array(&$array) {
  if (is_array($array)) {

      foreach ($array as $key=>value) $array[$key] = stripslashes_array($value);

  } else {
   
      return stripslashes($array);
  }
}

stripslashes_array($_GET);
stripslashes_array($_POST);
stripslashes_array($_COOKIE);

}


a da se izboris sa XSS-om koristi neku biblioteku kao sto je kses


znaci, recimo da hoces vrednost $_POST['comment'] da upises u bazu, treba da uradis sledece:

1. izvrsis onaj kod gore sto sam ti dao (tj to stavis samo na pocetak skripte)
2. $comment = mysql_real_escape_string(kses($_POST['comment'], array()))
3. mysql_query("INSERT INTO table_name SET comment = '$comment'");...

[Ovu poruku je menjao Aleksandar Ružičić dana 20.11.2008. u 15:15 GMT+1]
[ Goran Rakić @ 20.11.2008. 14:13 ] @
Zašto filtrirati XSS pri upisu u bazu? To se radi pri prikazu, a pri upisu se radi puni escape (pre toga se uradi čišćenje ako je urađen delimičan escape). Još bolje, ako se koristi PDO i pripremljeni upiti nema potrebe za escapeom.
[ Aleksandar Ružičić @ 20.11.2008. 14:18 ] @
pa ja to radim cisto da bi renderovanje bilo malo brze (neznatno, ali opet se trudim da sto vise optimizujem aplikaciju...), a i sta ce mi nedozvoljeni tagovi u bazi kad se ionako nece prikazati (u primeru sto sam dao nedozvoljavam ni jedan tag, ali ja obicno dozvolim strong,em,a (samo sa href attributom i http protokolom),blockquote i mozda jos par...)
[ mP-programer @ 21.11.2008. 08:21 ] @
Mislim da će ti ovaj članak puno pomoći da shvatiš
osnovne korake za sigurnost u PHP-u.

http://phpsec.org/projects/guide/sr/index.html

Pozdrav.