Zabezpečení formuláře při použití tiny_mce

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

Zdravím,
tam mám zase jeden dotaz. Tentokrát ohledně zabezpečení formuláře při použití tiny_mce. Tinny_mce formátuje text pomocí tagů, které je pak nutné znovu vypsat což je možné pouze když je na výstupu v šabloně výpis textu i s těmito tagy – {! $task->text} Samotné tiny_mce umí poznat „nebzpečné“ tagy (<script> <?php …) a tyto tagy vepsat pomocí entit, což je paráda. Problém ovšem nastává, když si uživatel v prohlížeči vypne javascript – tím se nenačte tiny_mce a ve formu jdou poslat tyto nebezpečné znaky, které se pak bez obav vypíšou.
Jak se proti tomu bránit?
Když ve výpisu udělám {$task->text} – tak nefunguje formátování (tagy jsou v entitách) a je bezpečno.
Když naopak tagy povolím {! $task->text} – tak je formátování ok, ale je nebezpečno při vypnutí JS.

Díky za odpověď.

Rellik
Člen | 104
+
0
-

Tak jsem to zkusil pomocí JS a cookies – pokud má uživatel JS zapnutý, zapíše se cookies. V šabloně pak kontroluju jestli cookies existuje a nebo ne a podle toho se volá {$task->text} nebo {! $task->text} .
Nicméně je to celkem na nic, protože stačí vypnout JS, odeslat škodlivý obsah pomocí formuláře, znovu zapnout JS, refrešnout a škodlivý obsah už vesele funguje :(

Melmen
Člen | 132
+
0
-

Nestačilo by použít texy a texylu?

ViPEr*CZ*
Člen | 817
+
0
-

Jestli si vzpomínám, tak tinymce se dá nastavit tak, aby umělo pracovat s entitami ;-)

Jan Tvrdík
Nette guru | 2595
+
0
-

Zamykám, téma nijak nesouvisí s Nette. Výstup z TinyMCE je potřeba na serveru prohnat přes knihovny jako HTML Purifier nebo Texy!.