Я пытаюсь санировать ввод данных пользователем, чтобы предотвратить инъекцию XSS, используя HTML-очиститель libxml.Когда я ввожу строку, подобную этой:
Normal text <b>Bold text</b>
, я получаю это вместо:
<p>Normal text <b>Bold text</b></p>
Я хочу избавиться от тега <p>
, который окружает весь мой ввод.
Вот функция, которая в настоящее время выполняет очистку:
from lxml.html import clean
cleaner = clean.Cleaner(
scripts = True,
javascript = True,
allow_tags = None,
)
def sanitize_html(html):
return cleaner.clean_html(html)
На несвязанной ноте приведенный выше код имеет одну строку: allow_tags = None
, где я пытаюсьудалить все теги HTML.Есть ли в libxml функция белого списка, в которой я только разрешаю определенные теги?