【发布时间】:2011-07-13 01:48:11
【问题描述】:
我需要让用户将 Markdown 内容输入到我的网络应用程序中,该应用程序有一个 Python 后端。我不想不必要地限制他们的条目(例如,不允许 any HTML,这违背了 Markdown 的精神和规范),但显然我需要防止跨站点脚本 (XSS) 攻击.
我不是第一个遇到这个问题的人,但是没有看到任何包含所有关键字“python”、“Markdown”和“XSS”的 SO 问题,所以就这样吧。
使用 Python 库处理 Markdown 和防止 XSS 攻击的最佳实践方法是什么? (支持PHP Markdown Extra 语法的加分项。)
【问题讨论】:
-
“Python 后端”?这到底是什么意思?如果你支持markdown,所有的HTML都可以用
<pre>引用。 -
您可以在ha.ckers.org/xss.html 处针对 XSS 备忘单测试您的应用程序
-
@S.Lott:这意味着服务器端脚本是用 Python 编写的。
<pre>不完全是解决方案。 Markdown 是我们在 SO 上用来编写 cmets 和问题的工具……它唯一会导致<pre>块的情况是您专门请求代码块(通过缩进)。 -
@S.Lott 不用担心,我是问那些已经了解 Markdown 工作原理以及后端是什么的人。
-
@S.Lott 我拒绝了。我希望这个问题相当笼统,而不是局限于例如Django、App Engine 或 Zope 等(我假设您不希望我定义“服务器端”或“Python 后端”,而是澄清我可能正在使用哪个框架。毕竟,如果你需要那些定义的,你肯定不会知道答案。)
标签: python xss markdown sanitization