【问题标题】:Preventing dangerous user input from django tinymce防止来自 django tinymce 的危险用户输入
【发布时间】:2019-05-25 21:17:51
【问题描述】:

假设我们想使用 tinymce 来允许用户输入 HTML 格式的输入。 django-tinymce 包是一个方便的解决方案。

但是为了稍后将其渲染为输出,我们必须使用 {{ userinput |安全 }} 来显示它。但是我们是否知道原始用户的输入是……安全的?

我们需要特别警惕和清理哪些恶意 HTML 标记?什么是不去除 tinymce 使用的合法标签同时保护未来将获得“安全”用户输入的网站用户的合理策略?

【问题讨论】:

  • |safe 的反义词是|escape。它只会将< 转换为<> 转换为>" 转换为",等等。

标签: html django tinymce


【解决方案1】:

您永远不能假设提供给您客户端的数据是“干净的”或“安全的”。如果恶意人员的目标是对您的系统造成损害,他们可以绕过您的前端及其所有验证。

您应该始终适当地配置您的前端。验证数据,将 TinyMCE 配置为只允许您想要创建的那些类型的标签,等等。

但是,无论前端设计如何,您始终必须重新检查服务器上提交的内容以确保安全。根本没有办法解决这种需求。什么构成“安全”可能是基于您的应用程序做什么以及谁使用它的业务决策。

您可以使用许多不同的库在服务器端进行这种验证/清理,因此根据您特定的服务器端设置(猜测是 PHP),您可以找到允许您“清理/净化”提交的 HTML 的库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-02
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2020-09-05
    • 2011-03-17
    相关资源
    最近更新 更多