Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Nette, dibi, spatne escapovani – jak tomuto zamezit?

Krystof
verified
rating uzivatele
(2 hodnocení)
19. 4. 2018 09:16:41
Napsal navay;1457637
// tento reset brani korektnimu vypoctu min a max price pri fulltextovem vyhledavani (v dotaze fulltextoveho vyhledavani je i vyrobce)
/*if (is_array($t) && strpos($t,'producer')!==FALSE)
continue;
*/
Co se stane, když odkomentujete tuhle část a zkusíte to s těma dvojtýma uvozovkama?
Lepší by bylo, kdybyste poslal přesnou chybovou hlášku.
Obecně si nemyslím, že chyba je v Dibi samotné, ta by se s dvojitou uvozovkou na vstupu normálně vyrovnala. Tady bude problém v tom, jak se sestavuje a plní daty ten SQL dotaz, protože tam se dá napáchat dost škody. Tipuji, že to nemusí být vůbec špatným escapováním dvojitých uvozovek, jak se na první pohled zdá (ty dvojité uvozovky by se tam za normálních okolností prostě objevily jako eskejpované, to by žádnou škodu neudělalo), ale prostě jen tím, že v těch LIKE měl navazovat další SQL řetezec, který z nějakého důvodu nebyl přidán nebo bylo na vstupu něco neočekávaného (což předpokládám mají ošetřovat ty podmínky v getDibiResultForPrices).
Taky bych si zkusil vypsat, co přesně vychází po naplnění$w = $t; z pole $w.
$w =
Array
(
=> 0
=> 1
=> c_products.active = 1
)
Odkomentovano:
/*if (is_array($t) && strpos($t,'producer')!==FALSE)
continue;*/
Vyhledavany string: neco "
Chybova hlaska ke stazeni zde:
Webshare.cz - moderní úložiště pro Vaše data
19. 4. 2018 09:16:41
https://webtrh.cz/diskuse/nette-dibi-spatne-escapovani-jak-tomuto-zamezit/strana/2/#reply1340947
navay
verified
rating uzivatele
19. 4. 2018 18:16:19
1) Z té odkázané chybové stránky je vidět, že Dibi tam dvojité uvozovky normálně eskejpuje zpětným lomítkem.
2)
To vám nepříjde divné? Buď jsou špatně ty dvě první položky, nebo ta třetí. Další věc je, že ty první dva názvy sloupců (c_products.deleted a c_categories.active) se vůbec neobjevují v tom problematickém SQL dotazu.
3) Pořád jste nenapsal tu část kódu, která a) tvoří a b) plní tu část s LIKE dotazem, odkud je ten SQL dotaz poprvé rozbitý. Tedy něco s modifikátory %~like~, %like~, %~like.
19. 4. 2018 18:16:19
https://webtrh.cz/diskuse/nette-dibi-spatne-escapovani-jak-tomuto-zamezit/strana/2/#reply1340946
Pro odpověď se přihlašte.
Přihlásit