Výpis formátovaného textu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kejlicz
Člen | 201
+
0
-

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
+
+1
-
{$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)

matopeto
Člen | 395
+
+1
-

Ak ide iba o odriadkovanie tak napriklad takto

{$text|escape|nl2br|noescape}

kejlicz
Člen | 201
+
0
-

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?

David Matějka
Moderator | 6445
+
+1
-

To bych pouzil nejaky html sanitizer, treba htmlpurifier

kejlicz
Člen | 201
+
0
-

Díky, ten znám a používal jsem ho dřív, když jsem dělal bez frameworku.

Oli
Člen | 1215
+
0
-

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?

Aurielle
Člen | 1281
+
+1
-

strip_tags ti neodstraní potenciálně závadné atributy povolených tagů / neošetří ti hodnoty v nich.

Editoval Aurielle (22. 1. 2015 17:27)

Jan Tvrdík
Nette guru | 2595
+
0
-

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
+
0
-

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?