Autor | Zpráva | ||
---|---|---|---|
tKej Profil |
#1 · Zasláno: 28. 7. 2008, 21:26:20
Technický dotaz,
můžu udělat dvojité escapování, když mám vypnutou directivitu magic_quotes_gpc a použiju ještě addslashes(); ?? Jaké nastanou problémy..? Díky |
||
Alphard Profil |
#2 · Zasláno: 28. 7. 2008, 21:55:31
moc nechápu otázku, můžeš escapovat třeba desetkrát, ale asi to bude k ničemu
jestli je magic_quotes_gpc vypnuté, tak by AFAIK naopak k dvojitému escapování docházet nemělo problémy mohou nastat při výpisu dat, která budou escapovaná vícekrát, bezpečnost to IMHO neohrozí já to řeším (a myslím že většina lidí) vlastní funkcí pro escapování function escape_string($string) { return get_magic_quotes_gpc()?$string:mysql_real_escape_string ($string); } asi je jasné, co se stane: pokud je direktiva zapnutá, vrátí se původní řetězec, jestli ne, vrátí se escapovaný řetězec |
||
tKej Profil |
#3 · Zasláno: 28. 7. 2008, 22:22:49
Moc díky, vyřešil jsi mojí otázku, jinak podobný kód jsem už měl (nebyl můj, autor byl Vrána), jen jsem potřeboval vědět co se stane když to escapnu víckrát... díky:)
|
||
tKej Profil |
#4 · Zasláno: 28. 7. 2008, 22:33:44
A ještě jeden dotaz:) můžu napsat tedy tohle? Ikdyž je magic_quotes_gpc zap/vyp? Prakticky se escapne $_POST a ještě bude v uvozovkách, podle mě nevadí, ale chci slyšet tvůj názor.
function fnc_addslashes($str) { return (get_magic_quotes_gpc() ? $str : addslashes($str)); } $mysql = "SELECT * FROM table WHERE id = '".fnc_addslashes($_POST['retezec'])."'"; |
||
Alphard Profil |
#5 · Zasláno: 28. 7. 2008, 22:41:10 · Upravil/a: Alphard
tady mi chybí kontext
pokud je id číslo, použil bych jinou konstrukci $mysql = "SELECT * FROM table WHERE id = '" . (int) $_POST['retezec']."'"; a uvozovky bych asi vynechal úplně, u čísel nejsou třeba $mysql = "SELECT * FROM table WHERE id = " . (int) $_POST['retezec']; pokud jde skutečně o řetězec, nevidím v tom problém |
||
tKej Profil |
#6 · Zasláno: 28. 7. 2008, 22:44:18
OK, díky (dal jsem špatný příklad na id řetězec, šlo mi hlavně o uvozovky..) díky
|
||
Časová prodleva: 16 let
|
0