Libxml Cleaner добавляет нежелательный тег

к фрагментам HTML

Я пытаюсь очистить ввод пользователя, чтобы предотвратить внедрение XSS, с помощью средства очистки HTML libxml . Когда я ввожу такую ​​строку:

Normal text <b>Bold text</b>

, я получаю вместо этого:

<p>Normal text <b>Bold text</b></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 функция белого списка, в которой я только разрешаю определенные теги?

5
задан Wylie 23 June 2011 в 04:39
поделиться