Twig: Permitir HTML, mas escapar de script

Estou investigando uma possívelXSS vetor de ataque para o meu aplicativo.

O que eu tenho:

FormType com um únicotextarea campo. Normalmente este campo pode conterhtml Tag.Twig modelo que renderiza os dados inseridos.

Eu uso esse formulário para inserir o seguinte conteúdo:

<b>Some valid HTML text</b>
<script type="text/javascript">alert("XSS")</script>

A visualização desses dados exigiria escape. Eu estou familiarizado com poucas estratégias quando se trata de escapar dos dados.

1)raw filter: Desativa completamente o escape -> introduz possíveis XSS

2)e filtro:

html saídas de sabor:<b>Some valid HTML text</b> <script type="text/javascript">alert("XSS")</script>js saídas de sabor:\x3Cb\x3ESome\x20valid\x20HTML\x20text\x3C\x2Fb\x3E\x0D\x0A\x3Cscript\x20type\x3D\x22text\x2Fjavascript\x22\x3Ealert\x28\x22XSS\x22\x29\x3C\x2Fscript\x3E

3){{ var|striptags('<br>')|raw }}, saídas:Algum texto HTML válido alerta ("XSS")

Este funciona, mas de alguma forma eu não gosto. Estou procurando uma solução da lista negra, não da lista branca.

Agora a pergunta:

Existe alguma outra estratégia de fuga que permitahtml tags, mas escapa<script> marcar comoe("js") filtro faz?

Devo "matar" o script durante o envio do formulário ou durante oTwig Renderização?

questionAnswers(1)

yourAnswerToTheQuestion