Autor Zpráva
Xman
Profil *
Zdravim,

prosim vas, kdy se pouzivaji (s ohledem na bezpecnost) funkce

1) intval
2) htmlentities (htmlspecialchars)
3) mysql_real_escape_string

diky,


Xman.
bukaj
Profil
Xman
Není to jasné?
1) intval - v případě, že chceš z řetězce dostat číslo. Např. pokud o tom, jaká stránka se má zobrazit, rozhoduješ podle celočíselného parametru $_GET['id'].
2) htmlspecialchars - escapování vypisovaných uživatelských vstupů. Předtím, než to uložíš do databáze, bys neměl escapovat pomocí této fce, protože se tvá data v databázi pak stávají závislé na jedné implementaci.
3) mysql_real_escape_string - tak to je snad jasné - ošetření dat, které se vyskytují v queries. Pozor ale na magic quotes gpc (více viz Google či PHP manuál).
Warden
Profil
2) htmlspecialchars nic neescapuje, ale převádí některé znaky na html entity (ampersand, menší než, větší než, dvojité uvozovky a jednoduché uvozovky)
Xman
Profil *
diky obema
srigi
Profil
htmlspecialchars() pouzivaj pri vystupe do HTML. Pouzivat to aj pri ukladani udajov do DB je IMO zbytocnost. Ta funkcia je navrhnuta pre vystup z aplikacie. To ze ju niektori pouzivaju pri "STORE" funkciach, je zrejme nepochopenie o co sa jedna - vid druhy post (no disrespect).

mysql_real_escape_string() je presne urcena na pouzitie pri STORE funkciach (pri vkladani user-dataz do DB). Problemom moze byt, ze je potrebne zriadit najskor pripojenie k DB (mysql_connect() ), co nie je vzdy mozne. Okrem toho je treba escapovat iba ak je direktiva magic_quotes_gpc vypnuta, ak je zapnuta, escapovalo by sa 2x - to treba osetrit. PHPvrana na to napisal jednoduchu funkciu, ktora to riesi
function gpc_addslashes($str)
  {
    return (get_magic_quotes_gpc() ? $str : mysql_real_escape_string($str));
  }


Dalsie infooz: Escapování.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: