Twig: разрешить HTML, но избежать сценария

Я расследую возможноеXSS вектор атаки для моего приложения.

Что я имею:

FormType с однимtextarea поле. Обычно это поле может содержатьhtml теги.Twig шаблон, который отображает вставленные данные.

Я использую эту форму для вставки следующего содержания:

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

Просмотр этих данных потребует экранирования. Я знаком с несколькими стратегиями, когда дело доходит до экранирования данных.

1)raw&nbsp;фильтр: полностью отключает экранирование -> вводит возможные XSS

2)e&nbsp;фильтр:

html&nbsp;выходы аромата:<b>Some valid HTML text</b> <script type="text/javascript">alert("XSS")</script>js&nbsp;выходы аромата:\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 }}, выходы:Некоторый действительный текст HTML&nbsp;предупреждение ( "XSS")

Это работает, но почему-то мне это не нравится. Я скорее ищу решение для черного списка, а не для белого.

Теперь вопрос:

Есть ли какая-либо другая стратегия побега, которая позволяетhtml&nbsp;теги, но избегает<script>&nbsp;пометить какe("js")&nbsp;фильтр делает?

Должен ли я "убить" скрипт во время отправки формы или во времяTwig&nbsp;рендеринг?