簡體   English   中英

如何防止在Markdown中使用的漂白>(blockquote)標簽

[英]How to prevent bleach from escaping > (blockquote) tag used in Markdown

我正在使用漂白劑來消毒用戶輸入。 但我使用Markdown這意味着我需要使用blockquote>符號而不會被轉義為> 所以我可以將它傳遞給misaka進行渲染。

默認情況下,文檔說它會轉義html標記,但沒有說明如何關閉>符號。 我仍然希望它能夠逃避實際的html標簽。

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

在維護使用Markdown的能力的同時保護輸入的任何其他想法將不勝感激。

Bleach是一種HTML消毒劑,而不是Markdown消毒劑。 正如解釋在這里 ,你應該首先運行通過降價的用戶輸入,然后通過漂白。 像這樣:

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

有關詳細信息,請參閱我之前引用的評論

你需要剝離所有標簽,但保持>原樣嗎?

  1. 剝離所有標簽,獲得輸出
  2. html解碼步驟1的輸出,並將該數據傳遞給misaka

第2步的簡單方法:

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

更專業

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM