如何防止漂白剂逃逸降价中使用的>(块引用)标签



我正在使用漂白剂来清理用户输入。但我使用 Markdown,这意味着我需要块引用>符号才能通过而不会被转义为>所以我可以把它传递给御坂进行渲染。

文档说默认情况下它转义了 html 标记,但没有说明如何关闭>符号的标记。我仍然希望它转义实际的 html 标签。

http://bleach.readthedocs.org/en/latest/clean.html

保持使用 Markdown 的能力的同时清理输入的任何其他想法将不胜感激。

Bleach是HTML消毒剂,而不是Markdown消毒剂。如此处所述,您应该首先通过 Markdown 运行用户输入,然后通过 Bleach。喜欢这个:

sanitized_html = bleach.clean(markdown.markdown(some_text))

有关详细信息,请参阅我之前引用的评论。

您是否需要去除所有标签,但保留>原样?

  1. 剥离所有标签,获取输出
  2. HTML解码步骤1的输出,并将该数据传递给御坂

步骤 2 的简单方法:

output.replace('>', '>')

更专业

import HTMLParser
h = HTMLParser.HTMLParser()
s = h.unescape(sanitized user input)

最新更新