簡體   English   中英

python-markdown 在不受信任的輸入上是否安全?

[英]Is python-markdown safe on untrusted input?

Python-Markdown包括轉義原始 HTML 等功能,這些功能顯然是為了在不受信任的輸入上使其安全,一般來說,Markdown 通常用於呈現用戶輸入,例如在 SO 上。

但是這個實現真的值得信賴嗎? 這里有沒有人研究過它來確定在任意輸入上運行是安全的?

我看到Django XSS 安全安全 Python Markdown 庫中有例如Markdown但“安全”模式真的安全嗎?

就任何人所知,Python Markdown 庫似乎是安全的,如果您使用得當的話 有關如何安全使用它的詳細信息,請參閱鏈接,但簡短版本是:使用最新版本、設置safe_mode和設置enable_attributes=False

更新:由於存在安全問題, safe_mode現在已被棄用。 https://github.com/Python-Markdown/markdown/commit/7db56daedf8a6006222f55eeeab748e7789fba89 相反,請使用單獨的 HTML 消毒劑,例如 HTML Purifier。

你可以用漂白劑

import bleach

text = "<a href='https://example.com'>Example</a><script>alert('message');</script>"

sanitized_text = bleach.clean(text,
            tags=['p','a','code','pre','blockquote'],
            attributes={'code': ['class'],'a': ['href']}
)

閱讀文檔了解更多信息。

暫無
暫無

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

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