Я пытаюсь очистить пользовательский ввод, чтобы предотвратить внедрение 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 функция белого списка, где я только разрешаю определенные теги?
<p>
? - person Karl Knechtel   schedule 23.06.2011