Zabezpečení formuláře při použití tiny_mce
- Rellik
- Člen | 104
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
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 :(
- Jan Tvrdík
- Nette guru | 2595
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!.