HTML v textarea escape & bezpečnosť
- steelbull
- Člen | 241
Mám nasledujúcu položku v komponente formulára:
$form->addTextArea('description', $t->translate('card.form.description') . ':')
->setDisabled($mainDisabled)
->setHtmlAttribute('class','k-editor')
->setRequired(true);
V latte ju vykresľujem takto:
<div class="row">
<div class="col-md-12">
{label 'description' /}
{input 'description'}
<span class="form-error-message">{inputError 'description'}</span>
</div>
</div>
Po submite sa HTML escapne:
<strong>ertertr</strong>
Dá sa to nejako vypnúť? Ak to vypnem, ako zabránim riziku XSS útoku?
- stepos2
- Člen | 53
Obsah inputu před uložením prohnat třeba přes HTML Purifier a v šabloně
pak zobrazit přes {$description|noescape}
Editoval stepos2 (24. 2. 2020 23:08)
- Jan Tvrdík
- Nette guru | 2595
Dá sa to nejako vypnúť?
Proč to chceš vypnout? Je to zapnutý úmyslně a nemělo by být potřeba to vypnout. KEditor by s tím měl normálně pracovat.
- steelbull
- Člen | 241
CZechBoY napsal(a):
Po submitu se to nejspis neescapuje, escapuje se az pri vypisu. XSS se nejspis nevyhnes.
@CZechBoY To som si myslel aj ja, ale do DB sa uloží už escapované. V Tracy som debugol values po submite formulára a už vo values je to escapované. Keď v DB manuálne escapované znaky naspäť manuálne opravím a refreshnem formulár, tak s to zobrazí korektne. Čiže nepotrebujem escapovať výpis, ale potrebujem vypnúť escapovanie pri submite.
- steelbull
- Člen | 241
stepos2 napsal(a):
Obsah inputu před uložením prohnat třeba přes HTML Purifier a v šabloně pak zobrazit přes
{$description|noescape}
@stepos2 To je všetko na to, aby mi to vyriešilo XSS? Má aj Nette niečo podobné integrované priamo v sebe?
Editoval steelbull (25. 2. 2020 20:55)
- David Matějka
- Moderator | 6445
pokud se i z prohlizece odesila na server escapovane html (coz zjistis v network panelu), tak hledej problem v tom wysiwyg editoru