Есть ли хорошая, активно поддерживаемая библиотека python для фильтрации вредоносных данных, таких как XSS?
Библиотека Python для фильтрации XSS?
Ответ 1
Если вы используете веб-фреймворк и движок шаблонов, такие как Jinja2, есть вероятность, что для механизма шаблона или рамки есть что-то построенное только для этого.
В модуле cgi есть что-то, что может вам помочь:
cgi.escape('malicious code here')
, см. http://docs.python.org/library/cgi.html#cgi.escape
Также Jinja2 обеспечивает экранирование:
from jinja2 import utils
str(utils.escape('malicious code here'))
Ответ 2
Вы можете легко закодировать XSS-защиту в Python, см., например, http://code.activestate.com/recipes/496942/ для поучительной и полезной части кода.
Ответ 3
Библиотека Strip-o-Gram выглядит неплохо. Я не проверял его правильно, но похоже, что он хорошо справляется (т.е. Может указывать белые теги HTML, которые вы указываете, а также HTML-экранирование чего-либо противного).
Вот пример фрагмента использования, приведенный на этой странице:
from stripogram import html2text, html2safehtml
mylumpofdodgyhtml # a lump of dodgy html ;-)
# Only allow <b>, <a>, <i>, <br>, and <p> tags
mylumpofcoolcleancollectedhtml = html2safehtml(mylumpofdodgyhtml,valid_tags=("b", "a", "i", "br", "p"))
# Don't process <img> tags, just strip them out. Use an indent of 4 spaces
# and a page that 80 characters wide.
mylumpoftext = html2text(mylumpofcoolcleancollectedhtml,ignore_tags=("img",),indent_width=4,page_width=80)
Надеюсь, что это поможет.