wysiwyg editor a filtrovani obsahu

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

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!

Azathoth
Člen | 495
+
-4
-

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…

iguana007
Člen | 970
+
+1
-

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

Azathoth
Člen | 495
+
0
-

@iguana007 máš pravdu, díky, jdu to u sebe opravit.

PhelixMad
Člen | 36
+
0
-

A ked sa možem ešte opýtať, ako zvyknete aplikovat HTMLPurifier v nette? Robite to cez componentu s definovanými nastaveniami? Alebo si spravíte filter pre latte? Alebo jednoducho hodíte na web s requirom a kde potrebujete tam si vytvorite objekt + zadefinujete nastavenia?

Jan Mikeš
Člen | 771
+
0
-

Rekl bych ze nejjednodussi to bude pres composer → https://packagist.org/…htmlpurifier

Jan Mikeš
Člen | 771
+
0
-

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);
	}
}
PhelixMad
Člen | 36
+
+1
-

@Lexi niečo podobne mám ale chcel vedieť aj ako to robia druhy programatori. Myslel som, žeby sa podelili :D ale asi nie :D

Mimochodom, bohužial composer nemozem využivať.