Zadejte hledaný výraz...

Latte a jeho kontextově sensitivní escapovaní – jak vypnout?

Whois Proxy
verified
rating uzivatele
15. 6. 2020 18:33:23
Ahoj,
jak vypnu kontextově sensitivní escapovaní v Latte (https://latte.nette.org/cs/guide#toc-kontextove-sensitivni-escapovani) ?
Potřebuji totiž do pole v JS vypsat číselné hodnoty a pořád mě to cpe do uvozovek, o což nestojím.
Díky
15. 6. 2020 18:33:23
https://webtrh.cz/diskuse/latte-a-jeho-kontextove-sensitivni-escapovani-jak-vypnout/#reply1454987
TomasX
verified
rating uzivatele
(4 hodnocení)
15. 6. 2020 19:15:05
jejich vypnutím si zaděláváš na bezpečnostní problém. Buď hodnotu prožeň přes json_encode, která ti čísla správně zapíše nebo jednotlivé hodnoty zapiš přes filtr number. Případně sem hoď ukázku.
15. 6. 2020 19:15:05
https://webtrh.cz/diskuse/latte-a-jeho-kontextove-sensitivni-escapovani-jak-vypnout/#reply1454986
Petr Hejda
verified
rating uzivatele
(5 hodnocení)
15. 6. 2020 20:59:21
Pro konkrétní výraz můžeš použít makro |noescape. https://latte.nette.org/cs/tags#toc-vypsani-promenne
Ale obecně čistší přístup mi přijde vytvořit to konkrétní pole hodnot už někde na úrovni controlleru, pak to předat v latte třeba jako hodnotu data atributu (s ponechaným escapováním) prvku, pro který jsou ty hodnoty určené, ... A JS pak může číst z toho data atributu, a hlavně může to pak být statický soubor někde mimo latte.
15. 6. 2020 20:59:21
https://webtrh.cz/diskuse/latte-a-jeho-kontextove-sensitivni-escapovani-jak-vypnout/#reply1454985
Whois Proxy
verified
rating uzivatele
15. 6. 2020 21:25:53
Napsal Petr Hejda;1587566
Pro konkrétní výraz můžeš použít makro |noescape. https://latte.nette.org/cs/tags#toc-vypsani-promenne
Ale obecně čistší přístup mi přijde vytvořit to konkrétní pole hodnot už někde na úrovni controlleru, pak to předat v latte třeba jako hodnotu data atributu (s ponechaným escapováním) prvku, pro který jsou ty hodnoty určené, ... A JS pak může číst z toho data atributu, a hlavně může to pak být statický soubor někde mimo latte.
Mám:
Což vytvoří:
A to je sice technicky v pohodě, ale rád bych docílil čistého textu v meta a s číselným typem ve value, tedy:
Nechci to vypínat globálně, ale mít možnost se u konkrétního výpisu rozhodnout, že to escapovat nechci.
---------- Příspěvek doplněn 15.06.2020 v 21:28 ----------
Napsal Petr Hejda;1587566
Pro konkrétní výraz můžeš použít makro |noescape. https://latte.nette.org/cs/tags#toc-vypsani-promenne
Achjo .. to samé je ve Smarty ... a já to hledal tady: https://latte.nette.org/cs/filters + pak řešil v Google konkrétní problém, čímž mě nenapadlo se podívat vedle na tagy ... Díky
15. 6. 2020 21:25:53
https://webtrh.cz/diskuse/latte-a-jeho-kontextove-sensitivni-escapovani-jak-vypnout/#reply1454984
TomasX
verified
rating uzivatele
(4 hodnocení)
16. 6. 2020 09:13:02
takhle si sestavovat json ručně je špatně, zanášíš tam řadu zranitelností.
Sestav si v presenteru tohle jako assoc pole, přidej si do šablony json encode filtr a prožeň tím celé pole, pak budeš mít datové typy správně.
16. 6. 2020 09:13:02
https://webtrh.cz/diskuse/latte-a-jeho-kontextove-sensitivni-escapovani-jak-vypnout/#reply1454983
Pro odpověď se přihlašte.
Přihlásit