Autor | Zpráva | ||
---|---|---|---|
Xman Profil * |
#1 · Zasláno: 23. 4. 2008, 18:10:18
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 |
#2 · Zasláno: 23. 4. 2008, 18:21:22
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 |
#3 · Zasláno: 23. 4. 2008, 19:42:51
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 * |
#4 · Zasláno: 25. 4. 2008, 18:52:06
diky obema
|
||
srigi Profil |
#5 · Zasláno: 25. 4. 2008, 19:33:19
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í. |
||
Časová prodleva: 16 let
|
0