是否有一个良好的,积极维护的python库可用于过滤恶意输入,如XSS?
答案 0 :(得分:8)
如果您使用的是Web框架和模板引擎(如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'))
答案 1 :(得分:3)
您可以在Python中轻松编写XSS防御代码,例如,请参阅http://code.activestate.com/recipes/496942/以获取有用且有用的代码。
答案 2 :(得分:1)
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's 80 characters wide.
mylumpoftext = html2text(mylumpofcoolcleancollectedhtml,ignore_tags=("img",),indent_width=4,page_width=80)
希望有所帮助。