Oznámení

Provoz fóra byl ukončen

Jak se ubránit XSS a jak vypnout headingModule

před 13 lety

zbytovsky
Člen | 18

Ahoj,

  1. rád bych věděl jak se má nastavit, aby texy nepropouštělo tag <script> – ukázka na texy.info se pouští, protože tam je asi trustMode(), ale doma mám povolené jen tagy <a href, <em a <strong a taky to pouští.
  2. další dotaz mám jak vypnout modul nadpisů, na stránce o implementaci je napsáno, že všechny moduly lze vypnout obecně název->allowed, jenže headingModul skladuje v proměnné allowed povolené typy zápisů, čili vypnutí nikoliv. Používám to v diskusi a tam se nadpisy opravdu nehodí.

před 13 lety

David Grudl
Nette Core | 6806

Pokud není značka <script> povolená, tak se do výstupu nedostane. Zkontrolujte si že platí $texy->htmlModule->allowed['script'] = NULL;

Pro vypnutí titulků je třeba vypnout obě syntaxe, podtržítkovou i „obalovací“, tedy:

// pro Texy 2
$texy->allowed['heading/surrounded'] = FALSE;
$texy->allowed['heading/underlined'] = FALSE;

// pro Texy 1.x
$texy->headingModule->allowed->surrounded = FALSE;
$texy->headingModule->allowed->underlined = FALSE;

před 13 lety

zbytovsky
Člen | 18

Pokud není značka <script> povolená, tak se do výstupu nedostane. Zkontrolujte si že platí $texy->htmlModule->allowed['script'] = NULL;

Ano, to bude ono, díky moc za odpověď. Asi to bude starším manuálem k implementaci, protože tam je napsaný jen tento způsob:

$texy->allowedTags=array(
 'a'        => array('href','title'),
 'strong'   => true,
 'em'       => true
);

Pro vypnutí titulků je třeba vypnout obě syntaxe, podtržítkovou i „obalovací“

Ano, to je v manuálu napsaný, ale nepochopil jsem to správně.

Tak díky za pomoc a za strávený čas. Texy je opravdu výborná, akorát mi chybí ještě zpětný konvertor, protože ukládat si články zároveň na dvě místa je někdy otravené. :-)

Pavel Zbytovský

před 13 lety

David Grudl
Nette Core | 6806

Spíš bych řekl, že manuál předběhl poslední uvolněnou verzi :-)

ad zpětný konvertor: Vzhledem k charakteru HTML a Texy je skutečně vhodnější text ukládat ve zdrojové variantě, tedy v Texy. Zpětná konverze bude vždy ztrátová. Příkladem můžou být zmíněné titulky – zpětný konvertor nemůže vědět, které ze dvou syntaxí dáváte přednost.

Tedy buď lze texty uchovávat v Texy a při zobrazení provádět konverzi na HTML (a celý systém doplnit keší, takže konverze se reálně provede jen jednou), nebo do databáze ukládat obě verze.