Výpis formátovaného textu
- kejlicz
- Člen | 201
Ahoj všichni.
Může mi prosím někdo poradit, jak co nejjednodušeji mohu v Nette vypsat text se zachováním odřádkování, který byl do DB uložen přes HTML prvek <textarea>.
Všude jen narážím na radu „vypnout escapování“, ale to si nemohu dovolit, protože to jsou komentáře vkládané lidmi (XSS).
Díky za radu.
S pozdravem Martin Kejzlar
- David Matějka
- Moderator | 6445
{$content|escape|nl2br|noescape}
Nebo pouzij treba texy, se kterym umoznis uzivatelum nejaky formatovani, ale zachovas to bezpecne…
Editoval matej21 (22. 1. 2015 15:41)
- kejlicz
- Člen | 201
Díky moc oběma. To jsem hledal a stačí mi to. Když jsem s tím ale zápasil, zkoušel jsem i např. CKEditor. Ten to nějak filtruje, ale zase je blbost spoléhat na filtrování na straně JS. Jak by se to tedy řešilo, kdybych v budoucnu potřeboval bezpečně vypisovat formátovaný text na z toho CKEditoru?
- Oli
- Člen | 1215
Jen taková otázka. Jakej je rozdíl mezi HTMLpurifier a strip_tags? Co jsem se tak na to v rychlosti koukal, tak mě nepřišlo, že by měl ten purifer nějakou killer funkci navíc.
Btw. z hlediska XSS, je potřeba dělat ještě něco nebo stačí odstranit nebezpečný tagy? V podstatě používám jen strip_tags a doctrine by mě měla ochránit proti SQL injection. Má smysl ještě něco řešit?
- Jan Tvrdík
- Nette guru | 2595
Strip_tags je hlavně nepoužitelné, pokud nejsi schopen garantovat, že vstupem je syntakticky validní HTML. Tedy nelze nikdy použít strip_tags na vstup uživatele, protože nevrací syntakticky validní HTML, takže stejně musíš použít htmlspecialchars a když už ho používáš, tak nedává smysl používat vstup poškozující strip_tags.
- Oli
- Člen | 1215
Díky oběma. No ono jde o to, že používáme redactor, kterej se o to stará na straně js a v doc mají ještě doporučenej právě ten strip_tags. V tomhle případě se teda vyplatí používat nějakou sanitizaci jako htmlpurifer?