wysiwyg editor a filtrovani obsahu
- PhelixMad
- Člen | 36
zdravim chcem si na stranku hodiť nejaky editor (aky je teraz jedno). Ide mi o to že ked chcem aby aj fungoval musim vypať escapovanie (noescape), ale ked vypnem escapovanie, tak samozrejme to umoznuje pouzivat scripty co vedie k xss a ja sa chcem opytat ci má nette nejaké riesenie ktore umozni pouzivat v editore len urcite tagy? Alebo nieco podobne…
Ďakujem!
- iguana007
- Člen | 970
Azathoth napsal(a):
wysiwyg tinymce o sobě tvrdí, že veškeré pokusy o xss ošetří na vstupu, takže potom by jediné xss mohlo přijít z databáze…
to ti vůbec nic neřeší, stačí si pozastavit submit request, změnit jeho obsah a odeslat to na server (stačí na to obyčejný plugin do browseru). Lepší/bezpečnější je server-side filtrace, jak již psal @DavidMatějka
- Jan Mikeš
- Člen | 771
Rekl bych ze nejjednodussi to bude pres composer → https://packagist.org/…htmlpurifier
- Jan Mikeš
- Člen | 771
Jinak bych doporucil vytvorit si hodne jednoduchy wrapper nad purifierem – service, ve kterem si purifier nakonfigurujes a vsude kde jej budes potrebovat – v presenteru nebo formulari, tak si akorat injectnes service.
Hodne rychly nastrel jak by mohla service vypadat (primitivni, bez configu atd…, jako zaklad to ale postaci a melo by to i fungovat):
class MyPurifier extends Nette\Object
{
private $htmlPurifier;
public function __construct()
{
$config = \HTMLPurifier_Config::createDefault();
$this->htmlPurifier = new \HtmlPurifier($config);
}
public function purify($dirtyHtml)
{
return $this->htmlPurifier->purify($dirtyHtml);
}
}