nefunkcni texy->allowedTags v nette2

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

ahoj, pravdepodovne pouze neco prehlizim, nechal jsem se inspirovat par prispevky ve foru (prestoze vyhledavani retezce „texy“ na nette.org je do jiste miry obtizne, protoze najde kdecos kvuli „dibi powered, Texy! powered“ :)

mam tedy nasledujici kod, chtel bych osetrit vstup uzivatele, napr. v navstevni knize, kam ma pristup kazdy – tudiz bych chtel zakazat vsechny html tagy kvuli bezpecnosti (povolit pouze zapisy s hvezdickou)

<?php
basepresenter:
--------------

protected function createTemplate($class = NULL) {

        // inicializace texy
        $texy = new \Texy();
        $texy->encoding = 'utf-8';
        $texy->allowedTags = \Texy::NONE;
        $texy->allowedStyles = \Texy::NONE;
        $texy->setOutputMode(\Texy::HTML4_TRANSITIONAL);

        $template = parent::createTemplate($class);
        $template->registerHelper('texy', callback($texy, 'process'));
        return $template;
    }

sablona:
--------

{? $text = "**abcd** <i>avc</i><script>window.alert(1);</script>"; }
{!$text|texy}
?>

vystup je tucne abcd, kurzivou avc a skript se spusti

dekuji za napady

desss
Člen | 14
+
0
-

reseni pro budouci generace, staci pridat tento radek:

<?php
$texy->allowed['html/tag'] = FALSE;
?>

https://texy.info/…-html-module

bojovyletoun
Člen | 667
+
0
-

podívej se, co dělá texyConfigurator

desss
Člen | 14
+
0
-

moje chyba, neuvedomil jsem si totiz, ze zalezi na poradi prikazu + jsem nakonec pouzil safeMode, ktery by mel dostatecne osetrit vstup uzivatele

<?php
basepresenter:
--------------

protected function createTemplate($class = NULL)
{
	// inicializace texy
	$texy = new \Texy();
	$texy->setOutputMode(\Texy::HTML4_TRANSITIONAL);
	$texy->encoding = 'utf-8';
	TexyConfigurator::safeMode($texy);
	$template = parent::createTemplate($class);
	$template->registerHelper('texy', callback($texy, 'process'));
	return $template;
}
?>