Django/Python 如何确保所见即所得输入的安全性 HTML?
How in Django/Python can I ensure safety from WYSIWYG-entered HTML?
我想消除 Web 应用程序中的 XSS / JavaScript 注入漏洞,允许用户使用像 CKEditor 这样的编辑器,它允许任意 HTML(以及我具体选择的编辑器是否允许任意 HTML 或不允许,blackhats 将能够提交任意 HTML 无论如何)。所以没有 JavaScript,无论是 SCRIPT 标签、ONCLICK 和系列,还是其他任何东西。目标平台是Python和Django.
我最好的选择是什么?我对将标签和属性列入白名单的实现持开放态度;也就是说,我认为没有必要允许用户提交您可以在 HTML 中构建的所有内容,而只删除 JavaScript。我很高兴拥有支持标签可用性的富文本,可以允许相当富有表现力的富文本。我也会对生成 Markdown 的编辑器持开放态度,并在保存数据之前删除所有 HTML 标签。 (HTML 操作看起来更简单,但我也会考虑 Markdown 实现的解决方案。)
我也不认为有必要生成经过清理的文本,否则会抛出一个异常,表明提交未通过测试。 (因此,将字符串小写并搜索“
我想消除 Web 应用程序中的 XSS / JavaScript 注入漏洞,允许用户使用像 CKEditor 这样的编辑器,它允许任意 HTML(以及我具体选择的编辑器是否允许任意 HTML 或不允许,blackhats 将能够提交任意 HTML 无论如何)。所以没有 JavaScript,无论是 SCRIPT 标签、ONCLICK 和系列,还是其他任何东西。目标平台是Python和Django.
我最好的选择是什么?我对将标签和属性列入白名单的实现持开放态度;也就是说,我认为没有必要允许用户提交您可以在 HTML 中构建的所有内容,而只删除 JavaScript。我很高兴拥有支持标签可用性的富文本,可以允许相当富有表现力的富文本。我也会对生成 Markdown 的编辑器持开放态度,并在保存数据之前删除所有 HTML 标签。 (HTML 操作看起来更简单,但我也会考虑 Markdown 实现的解决方案。)
我也不认为有必要生成经过清理的文本,否则会抛出一个异常,表明提交未通过测试。 (因此,将字符串小写并搜索“