2010-03-01 79 views
8

我想让用户留下富文本评论,可能使用降价。我已经安装了Reddit上使用的库,但是担心去年发生的JavaScript注入攻击,尤其是因为我仍然不清楚攻击是如何完成的。我还应该关注评论安全吗?有没有一个测试字符串,我可以通过我的系统来检查相同的缺陷,记下了reddit?安全的Python降价库

回答

4

Python-Markdown - “标准”一个或多或少的 - 有一个“安全模式”功能,逃脱的HTML标签。这应该足以应对大多数HTML注入攻击。

4

reddit的使用现在discount markdown library

+0

我在纯Python环境(谷歌应用程序引擎)工作,所以我不认为我可以用一个C库。我正在研究上面提到的图书馆清道夫,并且还查看了来自reddit的filters.py和markdown.py代码。这个免费的智库图书馆可能会被放到另一个项目中,而显然你希望reddit代码能够在reddit中工作,这样我就可以使用自由智慧代码。另一方面,我很好奇你为什么需要编写自己的过滤代码 - 我应该注意到公共可用库中是否存在漏洞? – MichaelBlume 2010-03-16 18:38:45

2

其他的答案提到的Python降价的安全模式,但现在已被弃用。 Python的降价的作者已经被引述的说法:

“安全模式”是一个可怜的名字的选择,我们继续使用落后 可比性(旧代码仍然与我们的新版本)。它真的 是一个无标记模式。换句话说,这只是一种禁止原始html的方法,并且不能保证安全。

他们现在建议使用HTML消毒剂像Bleach消毒降价输出。 mdx_bleach是一个Python-Markdown扩展,可以做到这一点。免责声明:我是这个扩展的作者。

因为它使用html5lib解析文档片段以同样的方式做浏览器,漂白剂是非常抵御未知的攻击,远远超过了基于正则表达式的消毒剂。